私は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>
このリンクを確認してください: 相対レイアウトにスクロールバーを追加する方法
問題はビューポートに関連している可能性があります。ScrollLayoutのAndroid:fillViewport="true"
で問題を解決できます。
Xmlを表示する場合、垂直のLinearLayoutを使用してこのファイルを設定できます。このユースケースでははるかに単純です。
ところで、私のアドバイスは、登録、ログインなどのユーザー入力のスクロールバーを避けることです...フォームには2つのフィールドしか含まれていないので、一度にすべてを画面に表示するように配置できます(より優れたUX!)。
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" >
これは、ScrollView内でRelativeLayoutの高さをmatch_parentに設定しても意味がないためです。 ScrolViewのfillViewportプロパティを使用してみてください。次の行をScrollView要素に追加します。
Android:fillViewport="true"
私はそれを自分で試したことはありません。多分それはあなたを助けるでしょう。詳細については、公式の documentation と here を参照してください。
<LinearLayout>
<ScrollView>
<RelativeLayout>
<put your all UI component here />
</RelativeLayout>
</ScrollView>
</LinearLayout>
を使用して要素を設定する
androd:margintTop="+5dp\-5dp"
必要に応じて、すべての側で+または-の値を意味します