如何将按钮和其他内容固定在屏幕底部,与其他内容无关?
我的布局如下:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ScrollView01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:fillViewport="true" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_gravity="center_horizontal"
android:layout_weight="1"
android:gravity="center_horizontal" >
<TextView ... />
...
<TextView ... />
</LinearLayout>
<Button
android:id="@+id/ButtonMain"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_weight="1"
android:text="@string/button_text"
android:textSize="30px"
android:textStyle="bold"
android:width="200px" />
</LinearLayout>
</ScrollView>
我希望ButtonMain的底部始终位于屏幕的底部。但是,该按钮仅在线性布局中的内容下方呈现,而不是在屏幕底部。我已经尝试了layout_gravity="center_horizontal|bottom"
,并将按钮置于其自身的LinearLayout中并具有相似的重力,但这不起作用。
如何完成此布局?
答案 0 :(得分:2)
您可以使用RelativeLayout而不是LinearLayout。通过添加以下标记,它将被分隔到屏幕按钮
android:layout_alignParentBottom="true"
如果您希望按钮始终位于底部,则应将ScrollView放在RelativeLayout内,并在底部显示按钮
请参阅: http://developer.android.com/reference/android/widget/RelativeLayout.LayoutParams.html
答案 1 :(得分:1)
将Scroll视图包装在相对布局中,但首先将xml文件中的按钮与alignParentBottom字段设置为true。然后将scrollView放入并将其设置为按钮上方。然后滚动视图将填充剩余的空间,并始终位于按钮上方,按钮将始终显示而不是滚动。
答案 2 :(得分:1)
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scroller"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical" >
<TextView
android:id="@+id/txt1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Hello"
android:textSize="25sp" />
<TextView
android:id="@+id/txt2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Hello2"
android:textSize="25sp" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="bottom|center"
android:orientation="horizontal" >
<Button
android:id="@+id/ButtonMain"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:text="click me"
android:textSize="30px"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
</ScrollView>
答案 3 :(得分:1)
根据上述评论,OP希望Button
位于ScrollView
之外。但是,XML只能有一个根元素,因此您必须将ScrollView
和Button
包装在某种布局中。
我在下面演示了使用您的初始布局和尺寸:
<?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:id="@+id/ScrollView01"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:fillViewport="true" >
<!-- You can remove one of these two LinearLayouts, since they just nest each other. Which one you want to remove is up to you. -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal" >
<TextView ... />
...
<TextView ... />
</LinearLayout>
</LinearLayout>
</ScrollView>
<Button
android:id="@+id/ButtonMain"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:text="@string/button_text"
android:textSize="30px"
android:textStyle="bold"
android:width="200px" />
</LinearLayout>
如果您有任何问题,请与我们联系!