2013-06-26 73 views
2

我們已經實施DrawerLayout,它工作正常。不過,我們希望固定菜單選項(註銷)必須位於屏幕的底部,並在抽屜打開時顯示。頁腳不是一個選項,因爲它總是顯示爲菜單列表中的最後一項,而我們總是希望它位於菜單底部。我們已經能夠在onDrawerOpened()中看到按鈕的相對佈局,但隨着抽屜成爲最頂層,抽出的開啓關閉了該按鈕。要求重點不利於作爲抽屜打開動畫甚至對焦傳請求帶固定菜單項目的抽屜佈局

在任何情況下後會發生,我們正在尋找:

  1. 無論是如何在底部 或
  2. 隨時添加該菜單項

    使抽屜打開後顯示菜單。

    public void onDrawerOpened(View drawerView) { 
    
         getActionBar().setTitle(getTitle());    
         invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu();    
         logoutButton.setVisibility(View.VISIBLE); 
         logoutButton.setFocusable(true); 
         logoutButton.requestFocus(); 
         logoutButton.requestLayout(); 
         //drawerLayout.addView(logoutView, 0); 
        } 
    
+0

這是一個將layout_gravity =「start」移動到DrawerLayout內部的相對佈局的簡單問題。 – Inamdar

回答

1

您嘗試與RelativeLayout的是給意外的結果,因爲它不是內容框架內。下面是我做的:

<android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <FrameLayout 
     android:id="@+id/content_frame" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 
<RelativeLayout 
    android:id="@+id/relative_layout" 
    android:layout_width="240dp" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" > 

    <ListView 
     android:id="@+id/left_drawer" 
     android:layout_width="240dp" 
     android:layout_height="match_parent" 
     android:background="#111" 
     android:choiceMode="singleChoice" 
     android:divider="@android:color/transparent" 
     android:dividerHeight="0dp" /> 

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

    <FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="?android:attr/activatedBackgroundIndicator" 
     android:layout_alignParentBottom="true" 
     android:id="@+id/holder" > 

     <TextView 

      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="?android:attr/activatedBackgroundIndicator" 
      android:gravity="center_vertical" 
      android:id="@+id/logout_item" 
      android:minHeight="?android:attr/listPreferredItemHeightSmall" 
      android:paddingLeft="16dp" 
      android:paddingRight="16dp" 
      android:text="@string/logout" 
      android:textAppearance="?android:attr/textAppearanceListItemSmall" 
      android:textColor="#fff" /> 

    </FrameLayout> 
    </RelativeLayout> 

</RelativeLayout> 

</android.support.v4.widget.DrawerLayout> 

不要忘了運行HierarchyViewer擺脫不必要ViewGroup