调整SwipeRefreshLayout高度以将View放在其底部

时间:2015-12-16 04:11:35

标签: android android-layout android-relativelayout

我在SwipeRefreshLayout内有RelativeLayout。问题是SwipeRefreshLayout占据了屏幕上的所有位置,我需要在此视图之后放置一个视图

See picture:我有:第一个视图,我需要:第二个视图位于屏幕的最底部,但顶部有一些空格。

我的示例XML是:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="ru.seniorsolutions.freelansim.Orders"
    tools:showIn="@layout/app_bar_orders"
    android:paddingTop="10dp"
    android:id="@+id/layout_base">

    <android.support.v4.widget.SwipeRefreshLayout
        android:id="@+id/refreshContainer"
        android:layout_width="match_parent"
        android:layout_height="450dp"
        android:layout_marginBottom="30dp">
            <ListView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:id="@+id/lvOffers"
                android:choiceMode="singleChoice"
                android:fastScrollEnabled="false" />
    </android.support.v4.widget.SwipeRefreshLayout>

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="horizontal" android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingLeft="20dp"
        android:paddingRight="20dp"
        android:measureWithLargestChild="false"
        android:layout_alignParentBottom="false"
        android:layout_alignParentLeft="false"
        android:layout_alignParentStart="false"
        android:layout_alignParentEnd="true"
        android:layout_alignBottom="@+id/refreshContainer">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="prev"
            android:id="@+id/tvPrevPage"
            android:textColor="#5bb3ee"
            android:textStyle="bold" />

        <View
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_weight="1" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="next"
            android:id="@+id/tvNextPage"
            android:textColor="#5bb3ee"
            android:textStyle="bold" />
    </LinearLayout>

</RelativeLayout>

1 个答案:

答案 0 :(得分:4)

android:layout_alignParentBottom="true"提供给您的LinearLayout

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="fill_parent"
    android:layout_alignParentBottom="true
    android:id="@+id/ll"
    .....
</LinearLayout>

并将SwipeRefreshLayout设置在LinearLayout上方,同时将其高度设为match_parent

<android.support.v4.widget.SwipeRefreshLayout
    android:id="@+id/refreshContainer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@id/ll"
    android:layout_marginBottom="30dp">