上部に名前が付いたシンプルなレイアウトと、画面の下部に配置したいボタン、またはアイテムを追加する場合はそれを超えたレイアウトがあります。
だから私は次のようにLinearLayoutでScrollViewを使用しています:
<ScrollView xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="@Android:color/white"
Android:fillViewport="true"
Android:focusableInTouchMode="true"
Android:paddingBottom="@dimen/activity_vertical_margin"
Android:paddingLeft="@dimen/activity_horizontal_margin"
Android:paddingRight="@dimen/activity_horizontal_margin"
tools:context=".ItemDetailActivity" >
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="vertical" >
<!-- Name -->
<RelativeLayout
Android:id="@+id/top_content"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_gravity="top" >
<TextView
Android:id="@+id/name_label"
style="@style/Header_Label_TextView"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:text="@string/name" />
<TextView
Android:id="@+id/name_value"
style="@style/Value_Label_TextView"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_below="@id/name_label" />
</RelativeLayout>
<!-- button -->
<RelativeLayout
Android:id="@+id/ButtonLayout"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_gravity="bottom" >
<Button
Android:id="@+id/add_button"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_marginTop="10sp"
Android:onClick="editItem"
Android:text="@string/button_edit" />
</RelativeLayout>
<requestFocus />
</LinearLayout>
これは私が得るものです:
ボタンが画面の下部またはそれ以降に表示されるようにするにはどうすればよいですか。オンラインで検索すると、ほとんどの回答は「Android:fillViewport = "true"を設定することでしたが、それは役に立ちません。何が悪いのですか?
次のようにボタンのレイアウトを変更します。
<RelativeLayout
Android:id="@+id/ButtonLayout"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:gravity="bottom" >
<Button
Android:id="@+id/add_button"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_marginTop="10sp"
Android:onClick="editItem"
Android:layout_alignParentBottom="true"
Android:text="@string/button_edit" />
</RelativeLayout>
これはうまくいくはずです-
layout_alignParentBottom = true
ボタンの。サンプルXML
<ScrollView xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="@Android:color/white"
Android:fillViewport="true"
Android:focusableInTouchMode="true"
Android:paddingBottom="@dimen/activity_vertical_margin"
Android:paddingLeft="@dimen/activity_horizontal_margin"
Android:paddingRight="@dimen/activity_horizontal_margin"
tools:context=".ItemDetailActivity" >
<RelativeLayout
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical" >
<!-- Name -->
<RelativeLayout
Android:id="@+id/top_content"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_gravity="top" >
<TextView
Android:id="@+id/name_label"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:text="Name" />
<TextView
Android:id="@+id/name_value"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_below="@id/name_label" />
</RelativeLayout>
<!-- button -->
<RelativeLayout
Android:id="@+id/ButtonLayout"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_alignParentBottom="true" >
<Button
Android:id="@+id/add_button"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_marginTop="10sp"
Android:onClick="editItem"
Android:text="Edit" />
</RelativeLayout>
</RelativeLayout>
</ScrollView>
スクロールビューで、LinearLayoutの代わりにRelativeLayoutを使用して、Bottom Viewプロパティを設定します。
Android:layout_alignParentBottom="true"
LinearLayout(RelativeLayoutよりもパフォーマンスが高い)を使用している場合は、Android:gravity="bottom"
&Android:layout_height="match_parent"
を次のように設定する必要があります。
<LinearLayout
Android:id="@+id/ButtonLayout"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical"
Android:gravity="bottom" >
<Button
Android:id="@+id/add_button"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_marginTop="10sp"
Android:onClick="editItem"
Android:text="@string/button_edit" />
</LinearLayout>