これを実装したい:多くの要素(ImageViews、TextViews、EditTextsなど)を含むScrollView、およびScrollViewの後に、常に画面の下部に常に表示されるいくつかのボタン(カスタムImageViews)。
Android:fillViewport = "true"属性を使用する場合、ScrollViewの要素が大きすぎて画面サイズに収まらない場合、ボタンは非表示になります。 Android:Weight = 1属性を使用する場合、画面が大きくて収まる場合、ScrollViewは画面の50%のみを取得します(ボタンの割合を10%程度に抑えたい)。 Android:Weightをより大きな値に設定すると、ボタンは非常に小さく表示されます。
助けてください!たぶんそれは私が見落としていた簡単なものかもしれませんが、何時間も頭を叩いています!
作成してテストしました。あなたが望むように見えます。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<LinearLayout
Android:id="@+id/buttons"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="horizontal"
Android:gravity="center"
Android:layout_alignParentBottom="true">
<Button
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Custom Button1"/>
<Button
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Custom Button2"/>
</LinearLayout>
<ScrollView
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:layout_above="@id/buttons">
<!--Scrollable content here-->
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="vertical">
<TextView
Android:layout_height="wrap_content"
Android:layout_width="wrap_content"
Android:text="test text"
Android:textSize="40dp"/>
</LinearLayout>
</ScrollView>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical">
<ScrollView
Android:layout_width="match_parent"
Android:layout_height="0dp"
Android:layout_weight="1">
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical">
<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Hello World"
/>
<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Hallo Welt"
/>
</LinearLayout>
</ScrollView>
<RelativeLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_weight="0">
<Button
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Go next page"
Android:layout_alignParentRight="true" />
</RelativeLayout>
</LinearLayout>
これは私のために働いた。スクロールビューのウェイトを1にします。スクロールビューに続く他のすべてのウィジェットをレイアウトに配置します。スクロールビューは、残りをブロックしない程度に大きくなります。
scrollviewは、線形レイアウトに配置するため画面に収まらないため、線形レイアウトは画面に収まります。
xmlレイアウトのルート要素としてscrollviewを作成してみてください
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/scrollView1"
Android:layout_width="match_parent"
Android:layout_height="wrap_content" >
<LinearLayout
Android:id="@+id/linearLayout1"
Android:layout_width="match_parent"
Android:layout_height="wrap_content" >
<!-- Here you can put some XML stuff and BOOM! your screen fit to scrollview -->
</LinearLayout>
</ScrollView>