2014-11-01 85 views
3

我有一個名爲「footer」的線性佈局,我想將它放在我的RecyclerView(API 21中引入的一種新類型的列表)的下方。在LinearLayout下方對齊RecyclerView

  1. recyclerview可能會希望有一個"match_parent"高度有效地使用內存(避免不必要的計算)。
  2. 我不應該第一次使用recyclerview,因爲它會佔用整個屏幕,頁腳不會被看到。
  3. 由於recyclerview第二linearlayout不應該有一個"match_parent"高度,因爲那麼recyclerview將不會被看到,我不需要頁腳伸展反正。

所以我有linearlayout"footer",高度首先在我的根relativelayout,那麼recyclerview"match_parent",和上面的「頁腳」規定:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
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"> 

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

    <ImageView 
     android:id="@+id/addTaskImage" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="end" 
     android:src="@drawable/ic_edit" 
     android:visibility="visible" /> 

    <RelativeLayout 
     android:id="@+id/addTaskRL" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:visibility="gone"> 

     <EditText 
      android:id="@+id/taskET" 
      android:layout_width="match_parent" 
      android:layout_height="150sp" 
      android:background="@color/White"> 
     </EditText> 

     <RelativeLayout 
      android:id="@+id/paletteRed" 
      android:layout_width="30dp" 
      android:layout_height="30dp" 
      android:layout_below="@id/taskET" 
      android:layout_marginLeft="50dp" 
      android:layout_marginTop="10dp" 
      android:background="@color/Red" /> 

     <RelativeLayout 
      android:id="@+id/paletteOrange" 
      android:layout_width="30dp" 
      android:layout_height="30dp" 
      android:layout_below="@id/taskET" 
      android:layout_marginLeft="10dp" 
      android:layout_marginTop="10dp" 
      android:layout_toRightOf="@id/paletteRed" 
      android:background="@color/Orange" /> 

     <RelativeLayout 
      android:id="@+id/paletteGreen" 
      android:layout_width="30dp" 
      android:layout_height="30dp" 
      android:layout_below="@id/taskET" 
      android:layout_marginLeft="10dp" 
      android:layout_marginTop="10dp" 
      android:layout_toRightOf="@id/paletteOrange" 
      android:background="@color/Green" /> 

     <RelativeLayout 
      android:id="@+id/paletteRoyalBlue" 
      android:layout_width="30dp" 
      android:layout_height="30dp" 
      android:layout_below="@id/taskET" 
      android:layout_marginLeft="10dp" 
      android:layout_marginTop="10dp" 
      android:layout_toRightOf="@id/paletteGreen" 
      android:background="@color/RoyalBlue" /> 

     <RelativeLayout 
      android:id="@+id/palettePurple" 
      android:layout_width="30dp" 
      android:layout_height="30dp" 
      android:layout_below="@id/taskET" 
      android:layout_marginLeft="10dp" 
      android:layout_marginTop="10dp" 
      android:layout_toRightOf="@id/paletteRoyalBlue" 
      android:background="@color/Purple" /> 

     <Button 
      android:id="@+id/submitBtn" 
      android:layout_width="70dp" 
      android:layout_height="30dp" 
      android:layout_below="@id/taskET" 
      android:layout_marginLeft="10dp" 
      android:layout_marginTop="10dp" 
      android:layout_toRightOf="@id/palettePurple" 
      android:background="@color/SkyBlue" 
      android:textColor="@color/White" 
      android:text="@string/submit"> 
     </Button> 
    </RelativeLayout> 
</LinearLayout> 

<android.support.v7.widget.RecyclerView 
    android:id="@+id/tasksRV" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_above="@id/footer"/> 
</RelativeLayout> 

我知道這是一個佈局問題僅僅是因爲如果我刪除頁腳我的recyclerview顯示。我對上面的佈局有什麼誤解?

+0

您有問題嗎?你能形容它嗎? – 2014-11-01 18:11:52

+0

所顯示的只是屏幕頂部附近的頁腳,而不是回收站視圖,然後是頁面下方的頁腳。 – 2014-11-01 19:17:35

+1

您只是忘了將'android:layout_alignParentBottom =「true」'添加到您的頁腳佈局,以便將它錨定到RelativeLayout的底部。 – 2014-11-01 19:59:56

回答

1

你只是忘了

android:layout_alignParentBottom="true" 

加入這行到您的頁腳的佈局,所以將它錨定到RelativeLayout的底部。