Android的RelativeLayout:如何alignParentBottom包装在一个ScrollView?

我遇到的问题似乎是,如果我有一个视图(例如myButton)在一个RelativeLayout设置为alignParentBottom - (根据下面的代码) - 然后用scrollview包装RelativeLayout(必要的,所以内容将可见更小的屏幕或方向更改为横向) - 然后,当父底部不可见时(例如,当更改为横向时)myButton显示在页面的顶部 - 而不是底部。

如何将视图对齐到屏幕的底部,并且即使底部位于滚动条下方,它仍然保留在底部?

<ScrollView
android:id="@+id/mainScrollView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:fillViewport="true">



<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/topLayout"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent">



... lots of views and stuff


<Button android:layout_alignParentBottom="true" 
android:id="@+id/myButton"  
android:text="Click Me" />

</RelativeLayout>
</ScrollView>   

将按钮从SCrollview中移出,将滚动视图和按钮都包含在线性布局中,将滚动视图的高度设置为0dip并将其权重设置为1,不要为该按钮设置任何权重属性,以便滚动视图可以占用全部剩下的空间只保留底部按钮的空间方式。

<?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="0dip"
        android:layout_weight="1">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

        ....lots of views...


        </LinearLayout>
    </ScrollView>

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:text="Button" />

</LinearLayout>

使用fill_parent作为ScrollView的子项的高度是毫无意义的。 您告诉RelativeLayout始终与其父级一样高。 在这种情况下,ScrollView变得毫无用处! RelativeLayout的高度应该设置为wrap_content,在这种情况下,根据RelativeLayout的含义,alignParentBottom可能无法按预期工作。 你应该简单地使用一个LinearLayout,它会简单得多。


那么你可以试试这个

<LinearLayout android:id="@+id/parentLayout"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <ScrollView android:id="@+id/mainScrollView"
        android:layout_width="fill_parent" android:layout_height="fill_parent"
        android:layout_weight="1" xmlns:android="http://schemas.android.com/apk/res/android"
        android:fillViewport="true">



        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/topLayout" android:layout_width="fill_parent"
            android:layout_height="fill_parent">



            ... lots of views and stuff


            <Button android:layout_alignParentBottom="true" android:id="@+id/myButton"
                android:text="Click Me" />

        </RelativeLayout>
    </ScrollView>
</LinearLayout>
链接地址: http://www.djcxy.com/p/16641.html

上一篇: Android RelativeLayout : how to alignParentBottom when wrapped in a ScrollView?

下一篇: Android DatePicker crashes when setting minDate or maxDate on kitkat