带按钮的ScrollView

时间:2014-02-11 10:05:12

标签: android android-layout

我需要结果。

enter image description here

我的xml

<?xml version="1.0" encoding="utf-8"?>

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

    <include layout="@layout/background_water"/>

    <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical">

        <ScrollView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">

            <include layout="@layout/finish_order_content"/>

        </ScrollView>

        <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

            <Button
                    android:id="@+id/sendOrder"
                    android:text="Оформить заказ"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_alignParentBottom="true"
                    android:layout_marginLeft="4dp"
                    android:layout_marginRight="4dp"
                    android:layout_marginBottom="8dp"
                    android:background="@drawable/btn_orange"/>

        </RelativeLayout>

    </LinearLayout>

</RelativeLayout>

如果ScrollView的内容很长,那么Button就不会显示(我只看到ScrollView)。如何解决?

5 个答案:

答案 0 :(得分:0)

// try this way
<?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">

    <include layout="@layout/background_water"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <include layout="@layout/finish_order_content"/>

    </ScrollView>
    </LinearLayout>

    <Button
        android:id="@+id/sendOrder"
        android:text="Оформить заказ"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="4dp"
        android:layout_marginRight="4dp"
        android:layout_marginBottom="8dp"
        android:background="@drawable/btn_orange"/>

</LinearLayout>

答案 1 :(得分:0)

您可以执行以下操作。将android:layout_above="@id/sendOrder"添加到ScrollView,使其显示在按钮上方,并设置其高度fill_parent以填充可用空间。

我不确定<include layout="@layout/background_water"/>应该如何工作,因为您还没有将其包含在上图中。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

    <Button
        android:id="@+id/sendOrder"
        android:text="Оформить заказ"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_marginLeft="4dp"
        android:layout_marginRight="4dp"
        android:layout_marginBottom="8dp"
        android:background="@drawable/btn_orange"/>

    <include layout="@layout/background_water"/>

    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_above="@id/sendOrder">

        <include layout="@layout/finish_order_content"/>

    </ScrollView>

</RelativeLayout>

答案 2 :(得分:0)

试试这个:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

<include layout="@layout/background_water"/>
<FrameLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

<ScrollView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical" >

<LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical">

  <include layout="@layout/finish_order_content"/>

    </LinearLayout>
    </ScrollView>

      <LinearLayout
        android:id="@+id/footer"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:layout_marginBottom="0dp"
        android:gravity="center"
        android:orientation="vertical"
        android:padding="5dp" >

        <Button
                android:id="@+id/sendOrder"
                android:text="Оформить заказ"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal|center_vertical"
                android:layout_marginLeft="4dp"
                android:layout_marginRight="4dp"
                android:layout_marginBottom="8dp"
                android:background="@drawable/btn_orange"/>

    </LinearLayout>
</FrameLayout>

</LinearLayout>

答案 3 :(得分:0)

以下应该有效。我冒昧地删除了不必要的观点。不确定background_water究竟是什么,但是如果它应该被用作背景,只需删除你的include(以及我添加到ScrollView中的android:layout_below部分),并在主RelativeLayout上使用android:background。

<?xml version="1.0" encoding="utf-8"?>

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

    <include layout="@layout/background_water"
        android:id="@+id/include_layout"/>

    <Button
        android:id="@+id/sendOrder"
        android:text="Оформить заказ"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_marginLeft="4dp"
        android:layout_marginRight="4dp"
        android:layout_marginBottom="8dp"
        android:background="@drawable/btn_orange"/>

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@id/sendOrder"
        android:layout_below="@id/include_layout">

        <include layout="@layout/finish_order_content"/>

    </ScrollView>

</RelativeLayout>

答案 4 :(得分:0)

只需尝试一次,将下面的代码放在xml文件中并查看其预览。 我希望这会帮助你或至少提供一个线索:

<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin" >

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/button"
        android:layout_marginBottom="10dip"
        android:background="#bb9789" >
    </ScrollView>

    <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="#ff6790"
        android:gravity="center"
        android:text="Button" />

</RelativeLayout>

的价值
  

activity_vertical_margin

  

16dip