2013-09-16 2 views
0

Я пытаюсь сделать то же самое @lnamdar, заданное в этом вопросе (Drawer layout with fixed menu item). Я пытаюсь получить лучшее объяснение их решения.Нижняя позиция на DrawerLayout

Я пытаюсь это:

<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" 
android:background="@android:color/black"> 

<!-- The main content view --> 
<FrameLayout 
    android:id="@+id/content_frame" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:background="@android:color/transparent"> 
    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:background="@color/black" 
     android:text="This is the footer text"/> 

</RelativeLayout> 

<!-- The navigation drawer --> 
<ListView 
    android:id="@+id/left_drawer" 
    android:layout_width="300dp" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:choiceMode="singleChoice" 
    android:background="@android:color/black"/> 

Но это вызывает представление списка не показывать, и когда я переключите открыть/закрыть только то, что я вижу, это сноска. Я попытался поместить как listView, так и нижний колонтитул textView внутри RelativeLayout, но затем он сбой с ClassCastException в Параметрах Layout, используемых в классе Layer Layout.

Благодарим за помощь!

ответ

0

Их попытка с RelativeLayout давала неожиданный результат, поскольку она не находилась внутри рамки содержимого. Объяснение довольно просто, так как RelativeLayout является родителем ListView, в котором хранятся элементы меню, которые мы перемещаем гравитацией к нему, вместо этого используя ListView с такой же силой тяжести. Вот что я сделал:

<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" /> 

<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> 

Не забудьте запустить HierarchyViewer, чтобы избавиться от ненужной ViewGroup.

+0

Спасибо Nikola, между тем я пришел к такому же выводу и смог это сделать. Очень ценю помощь! – cperes

Смежные вопросы