Android:如何让我始终可以看到滚动视图下方的布局?

时间:2015-03-26 16:32:34

标签: android scrollview footer

这是我的问题。

我有一个RelativeLayout,包括一个ScrollView和一个LinearLayout(带有OK / Cancel按钮)

我正在使用它作为Dialog,我希望OK / Cancel Buttons作为“页脚”工作,但如果不需要则不填充所有屏幕尺寸(所以我不想使用AlignParentBottom参数),但是当滚动视图太长了,我的LinearLayout得到了“隐藏”

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout0"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <ScrollView
        android:id="@+id/ScrollView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:scrollbarSize="12dip" >

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="6dp"
            android:layout_marginTop="6dp"
            android:orientation="vertical"
            android:paddingLeft="8dip"
            android:paddingRight="8dip" >

            <LinearLayout
                android:id="@+id/ly_sel_4_5"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:orientation="vertical"
                android:paddingBottom="16dip"
                android:paddingTop="8dp" >

                <LinearLayout
                    android:id="@+id/p2"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >

                    <TextView
                        android:id="@+id/p_label_cvv"
                        style="@style/SpecialText"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="CVV  " />

                    <EditText
                        android:id="@+id/p_cvv"
                        android:layout_width="100dp"
                        android:layout_height="wrap_content"
                        android:layout_below="@id/p_label_cvv"
                        android:background="@android:drawable/editbox_background"
                        android:inputType="numberPassword"
                        android:maxLength="8" >
                        <requestFocus />
                     </EditText>
                </LinearLayout>

            <LinearLayout
                android:id="@+id/p3"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_below="@id/p2"
                android:orientation="vertical" >

                <TextView
                    android:id="@+id/label_sellerPIN"
                    style="@style/SpecialText"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="PIN del vendedor " />

                <EditText
                    android:id="@+id/sellerPIN"
                    android:layout_width="100dp"
                    android:layout_height="wrap_content"
                    android:background="@android:drawable/editbox_background"
                    android:inputType="numberPassword"
                    android:maxLength="4"
                    android:nextFocusDown="@+id/continuar4" />
                </LinearLayout>

            </LinearLayout>
        </RelativeLayout>
    </ScrollView>

    <LinearLayout
        android:id="@+id/LinearLayout1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ScrollView1"
        android:layout_marginTop="18dp"
        android:background="@color/light_grey"
        android:gravity="center" >

        <Button
            android:id="@+id/continuar4"
            android:background="@drawable/custom_button_grey"
            style="@style/SpecialTextButtonDialog"
            android:layout_marginTop="1dp"
            android:layout_marginRight="1dp"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:minHeight="56dp"
            android:minWidth="120dp"
            android:text="@string/continuar" />

        <Button
            android:id="@+id/cancelar4"
            android:background="@drawable/custom_button_grey"
            style="@style/SpecialTextButtonDialog"
            android:layout_marginTop="1dp"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:minHeight="56dp"
            android:minWidth="120dp"
            android:text="@string/cancelar" />

    </LinearLayout>
</LinearLayout>

我想要的是,如果ScrollView中的内容变得太大而无法显示......它不会取代我的LinearLayout,就好像按钮位于de ScrollView中一样,但它们会卡在de Dialog的底部。< / p>

谢谢大家。

1 个答案:

答案 0 :(得分:0)

试试这个:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"

     ... ...
>

    <ScrollView
        ... ...
        android:layout_above="@+id/btGroup"
        android:layout_marginBottom="8dp"
        android:layout_alignParentTop="true"
    >

     //other views
     ... ...

    </ScrollView>

    <RelativeLayout
        android:id="@+id/btGroup"
        ... ...
        android:layout_alignParentBottom="true"
    >

        <Button
            android:id="@+id/btOk"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"  
            android:layout_alignParentLeft="true"
        />
        <Button
            android:id="@+id/btCancel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"  
            android:layout_alignParentRight="true"
        />

    </RelativeLayout>

 </RelativeLayout>

希望这有帮助!