将按钮放在滚动视图底部或屏幕底部

时间:2018-03-13 13:41:26

标签: android android-layout

我的应用程序布局有问题。

我试图做像Trello这样的布局(trello布局的屏幕,例如来自google)

enter image description here

但我在ScrollView底部的按钮有问题

现在我的应用程序就像:

enter image description here

所以你怎么看,我总是在显示屏底部的按钮。 我想创建一个Header部分,使用Scrollview和回收器视图的body部分以及带有操作按钮的Footer。

现在我的xml应用程序是:

    <android.support.v7.widget.CardView 
       xmlns:android="http://schemas.android.com/apk/res/android"
       xmlns:card_view="http://schemas.android.com/apk/res-auto"
       xmlns:tools="http://schemas.android.com/tools"
       android:id="@+id/card_view"
       android:layout_width="320dp"
       android:layout_height="wrap_content"
       android:orientation="horizontal"
    >
       <RelativeLayout
          android:id="@+id/relativeLayout"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:orientation="vertical">
            <RelativeLayout
               android:id="@+id/header"
               android:layout_width="match_parent"
               android:layout_alignParentTop="true"
               android:layout_height="wrap_content"
            >
               <TextView
                   android:id="@+id/header_title"
                   style="@style/card_header_text"
                   android:layout_width="wrap_content"
                   android:layout_height="wrap_content"
                   android:layout_alignParentLeft="true"
                   android:layout_alignParentStart="true"
                   android:layout_alignParentTop="true"
                   android:orientation="vertical"
                   android:text="title"
               />
               <TextView
                   android:id="@+id/header_subtitle"
                   style="@style/card_header_text"
                   android:layout_width="wrap_content"
                   android:layout_height="wrap_content"
                   android:layout_alignParentLeft="true"
                   android:layout_alignParentStart="true"
                   android:layout_below="@+id/header_title"
                   android:text="subtitle" />
              <ImageButton
                 android:id="@+id/context_menu"
                 android:layout_width="80dp"
                 android:layout_height="24dp"
                 android:layout_alignParentEnd="true"
                 android:layout_alignParentRight="true"
                 android:layout_alignParentTop="true"
                 android:layout_gravity="right"
                 android:background="@android:color/transparent"
                 android:clickable="true"
                 android:src="@drawable/ic_more_vert_black_16dp"
              />
           </RelativeLayout>
           <android.support.v4.widget.NestedScrollView
             android:layout_below="@+id/header"
             android:layout_above="@+id/button_action"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content">
                <android.support.v7.widget.RecyclerView 
                   android:id="@+id/list"
                   android:layout_width="wrap_content"
                   android:layout_height="wrap_content"
                   android:layout_below="@id/header"
                />
           </android.support.v4.widget.NestedScrollView>
           <Button
            android:id="@+id/button_action"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:text="@string/button_action"
            />
    </RelativeLayout>
</android.support.v7.widget.CardView>

包含&#34;块列表&#34;的父布局是

<HorizontalScrollView
    android:id="@+id/horizontalScrollFather"
    android:orientation="horizontal"
    android:fillViewport="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <RelativeLayout
       android:layout_width="wrap_content"
       android:descendantFocusability="blocksDescendants"
       android:orientation="horizontal"
       android:layout_height="wrap_content">
       <android.support.v7.widget.RecyclerView
          android:id="@+id/list_blocks"
          android:layout_width="wrap_content"
          android:layout_height="match_parent"
       />
   </RelativeLayout>
</HorizontalScrollView> 

修改

我试图用以下内容修改我的xml:

<android.support.v4.widget.NestedScrollView
   android:id="@+id/myNestedScrollView"
   android:layout_below="@+id/header"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content">
   <android.support.v7.widget.RecyclerView 
      android:id="@+id/list"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
   />
</android.support.v4.widget.NestedScrollView>
<Button
   android:id="@+id/button_action"
   android:layout_below="@+id/myNestedScrollView"     <!-- as suggested -->
   android:layout_width="match_parent"
   android:layout_height="wrap_content"

   android:text="@string/button_action"
/>

但现在问题是带有recycleler的scrollview隐藏了Button:

enter image description here

我如何复制布局?

1 个答案:

答案 0 :(得分:0)

使用此代码

   <android.support.v4.widget.NestedScrollView
         android:id="@+id/myNestedScrollView"
         android:layout_below="@+id/header"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content">
            <android.support.v7.widget.RecyclerView 
               android:id="@+id/list"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"/>
       </android.support.v4.widget.NestedScrollView>

       <Button
        android:id="@+id/button_action"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/myNestedScrollView"
        android:text="@string/button_action"/>

更改

不要在Button上执行alignParentBottom并且不要将NestedScrollView放在Button上面而是将Button放在NestedScrollView下面

并且无需在RecyclerView中使用android:layout_below="@id/header"