我想在Android中获得一个非常简单的布局,但我无法让它工作。我想要的只是一个标题(通过include
一个XML文件),然后是ScrollView
以显示大量文本,底部有两个按钮,应该始终可见。
我摆弄了LinearLayout
和RelativeLayout
s,但不知何故,我无法让它发挥作用。我到现在所拥有的是:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<include layout="@layout/header" />
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ScrollView
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:id="@+id/svDisclaimer"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/tvDisclaimer">
</TextView>
</ScrollView>
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/svDisclaimer"
>
.. [ snip ] ..
</LinearLayout>
</RelativeLayout>
</LinearLayout>
(.. [snip] ..是我的按钮所在的位置) 标题在那里,滚动视图弹出,但按钮无处可见。
答案 0 :(得分:4)
您的ScrollView的高度设置为fill_parent
,它将ScrollView下方的所有内容从屏幕底部推开。你永远不会看到你不能滚动到的东西......试试这个模式:
<ScrollView >
<RelativeLayout >
<TextView />
<LinearLayout >
<!-- [ snip ] -->
</LinearLayout>
</RelativeLayout>
</ScrollView>
您也可以使用RelativeLayout位置标记删除LinearLayout。 (android:below
,android:toRightOf
等)
尝试在我的评论中使用此配置:
<ScrollView
...
android:above="@+id/buttons" >
...
</ScrollView>
<LinearLayout
android:id="@+id/buttons"
android:layout_alignParentBottom="true"
... >
...
</LinearLayout>
答案 1 :(得分:0)
就像Sam说的那样,将ScrollView的高度设置为fill_parent会将按钮从屏幕上移开。但是,有一种方法可以使用RelativeLayout的布局标签。试试这个:
<LinearLayout>
[snip]
<RelativeLayout>
<!-- Declare the buttons *before* the ScrollView, but use layout params to move
them to the bottom of the screen -->
<LinearLayout
android:id="@+id/buttonParent"
android:layout_alignParentBottom="true">
[Buttons go here]
</LinearLayout>
<!-- The "android:layout_above" attribute forces the ScrollView to leave space for the buttons -->
<ScrollView
android:height="fill_parent"
android:layout_above="@id/buttonParent" />
[snip]
</ScrollView>
</RelativeLayout>
</LinearLayout>
答案 2 :(得分:0)
另一种选择是将必须保留在屏幕上的顶部和底部元素放在framelayouts中。 http://android-er.blogspot.ca/2011/06/example-of-framelayout.html