web-dev-qa-db-ja.com

スクロールビューをAndroidレイアウトに追加する

私はscrollViewを追加したい相対レイアウトを持っていますが、問題は、スクロールビューを追加したときに、相対的に設定されたすべてのウィジェットが場所を失ったことです。あらゆる可能性を試しましたが、スクロールを設定できません適切に表示し、誰かが私を助けることができますか?スクロールビューをxmlファイルのすべての要素に配置したいと思います。

新しいコード:

<ScrollView xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:tools="http://schemas.Android.com/tools"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    >

<RelativeLayout
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:background="#ffffff" >

    <ImageButton
        Android:id="@+id/linearLayout1"
        Android:layout_width="fill_parent"
        Android:layout_height="140dp"
        Android:layout_alignParentLeft="true"
        Android:layout_alignParentTop="true"
        Android:layout_weight="0.9"
        Android:background="@drawable/subscribe_second_top"
        Android:orientation="vertical" >
    </ImageButton>





            <EditText
                Android:id="@+id/editText1"
                Android:layout_width="270dp"
                Android:layout_height="wrap_content"
                Android:layout_below="@+id/bebasNeueTextView1"
                Android:layout_centerHorizontal="true"
                Android:ems="10"
                Android:inputType="textEmailAddress" />

            <TextView
                Android:id="@+id/bebasNeueTextView2"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:layout_below="@+id/editText1"
                Android:layout_centerHorizontal="true"
                Android:text="THE EMAIL YOU WILL USE TO GET ALL YOUR APPS CREATED BY THE SOFT"
                Android:textColor="#000000"
                Android:textSize="7sp"
                Android:textStyle="bold" />

            <TextView
                Android:id="@+id/bebasNeueTextView6"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:layout_below="@+id/editText2"
                Android:layout_centerHorizontal="true"
                Android:text="YOUR GOOGLE Play Store ORDER NUMBER, IN ORDER TO PROVE YOU BOUG"
                Android:textColor="#000000"
                Android:textSize="7sp"
                Android:textStyle="bold" />

            <TextView
                Android:id="@+id/bebasNeueTextView4"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:layout_below="@+id/bebasNeueTextView2"
                Android:layout_centerHorizontal="true"
                Android:layout_marginTop="16dp"
                Android:text="ENTER YOUR Play Store ORDER NUMBER"
                Android:textColor="#94c23e"
                Android:textSize="13sp"
                Android:textStyle="bold" />

            <RelativeLayout
                Android:layout_width="fill_parent"
                Android:layout_height="80dp"
                Android:layout_alignParentBottom="true"
                Android:background="@drawable/subscribe_second_bottom"
                Android:paddingBottom="5dp"
                Android:paddingTop="30dp" >

                <com.apkcreator.fwd.BebasNeueButton
                    Android:id="@+id/finishButton"
                    Android:layout_width="wrap_content"
                    Android:layout_height="wrap_content"
                    Android:layout_alignParentBottom="true"
                    Android:layout_centerHorizontal="true"
                    Android:background="#94c23e"
                    Android:paddingBottom="10dp"
                    Android:paddingLeft="30dp"
                    Android:paddingRight="30dp"
                    Android:paddingTop="10dp"
                    Android:text="FINISH"
                    Android:textSize="18sp"
                    Android:textStyle="bold" />
            </RelativeLayout>

            <TextView
                Android:id="@+id/bebasNeueTextView1"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:layout_alignParentTop="true"
                Android:layout_centerHorizontal="true"
                Android:layout_marginTop="170dp"
                Android:text="ENTER YOUR EMAIL"
                Android:textColor="#94c23e"
                Android:textSize="13sp"
                Android:textStyle="bold" />

            <EditText
                Android:id="@+id/editText2"
                Android:layout_width="270dp"
                Android:layout_height="wrap_content"
                Android:layout_alignLeft="@+id/editText1"
                Android:layout_below="@+id/bebasNeueTextView4"
                Android:ems="10" 
                Android:layout_centerHorizontal="true">


            </EditText>

</RelativeLayout>
 </ScrollView>
9
Hassaan Rabbani

このリンクを確認してください: 相対レイアウトにスクロールバーを追加する方法

問題はビューポートに関連している可能性があります。ScrollLayoutのAndroid:fillViewport="true"で問題を解決できます。

Xmlを表示する場合、垂直のLinearLayoutを使用してこのファイルを設定できます。このユースケースでははるかに単純です。

ところで、私のアドバイスは、登録、ログインなどのユーザー入力のスクロールバーを避けることです...フォームには2つのフィールドしか含まれていないので、一度にすべてを画面に表示するように配置できます(より優れたUX!)。

7
Alex Cabrera

Xmlコードの先頭を次のように変更するだけです。

<ScrollView xmlns:Android="http://schemas.Android.com/apk/res/Android"
     xmlns:tools="http://schemas.Android.com/tools"
     Android:layout_width="fill_parent"
     Android:layout_height="fill_parent" 
     Android:fillViewport="true">

     <RelativeLayout
          Android:layout_width="match_parent"
          Android:layout_height="wrap_content"
          Android:background="#ffffff" >
5
Mikel

これは、ScrollView内でRelativeLayoutの高さをmatch_parentに設定しても意味がないためです。 ScrolViewのfillViewportプロパティを使用してみてください。次の行をScrollView要素に追加します。

Android:fillViewport="true"

私はそれを自分で試したことはありません。多分それはあなたを助けるでしょう。詳細については、公式の documentationhere を参照してください。

2
Talha Mir
<LinearLayout>
  <ScrollView>
    <RelativeLayout>
      <put your all UI component here />
    </RelativeLayout>
  </ScrollView>
</LinearLayout>
1
RRTW

を使用して要素を設定する

androd:margintTop="+5dp\-5dp"

必要に応じて、すべての側で+または-の値を意味します

0
Spatel