我想在Android中实现导航抽屉(左侧菜单)。
菜单顶部应有一个项目列表,底部有两个按钮。
我采取了两种方法:
1)通过
在页面中添加页脚mDrawerList.addFooterView(footer);
使用此解决方案,页脚就像列表中的另一项。因此,如果列表中的项目很少,则页脚不会显示在底部,实际上它位于最后一个列表项的正下方。
2)将相对布局应用于左侧组件,如:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- The main content view -->
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<!-- The navigation drawer -->
<RelativeLayout
android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start">
<ListView
android:id="@+id/left_drawer_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:choiceMode="singleChoice"
android:divider="@android:color/white"
android:dividerHeight="1dp"
android:background="@color/black"/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_margin="20dp">
<Button
android:id="@+id/dashboard_iv_profile_image"
android:layout_width="90dp"
android:layout_height="90dp"
android:text="Test"/>
</RelativeLayout>
</RelativeLayout>
</android.support.v4.widget.DrawerLayout>
但是,如果未显示所有菜单列表项,则页脚位于列表项上方,隐藏最后一项。
如何实现正确的解决方案?
我是否必须使用ScrollView?
谢谢!
已编辑1
使用第二种方法和left_drawer RelativeLayout中的android:layout_above,我得到了类似于拍摄的照片:
答案 0 :(得分:2)
在我看来,您的布局存在问题。您不应该需要两个RelativeLayout
。
尝试这样的事情:
<RelativeLayout
android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start">
<ListView
android:id="@+id/left_drawer_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:choiceMode="singleChoice"
android:divider="@android:color/white"
android:dividerHeight="1dp"
android:layout_above="@+id/dashboard_iv_profile_image"
android:background="@color/black"/>
<Button
android:id="@+id/dashboard_iv_profile_image"
android:layout_width="90dp"
android:layout_height="90dp"
android:layout_alignParentBottom="true"
android:layout_margin="20dp"
android:text="Test"/>
</RelativeLayout>
注意在ListView
中添加layout_above并将alignParentBottom移动到Button
。