我已经实现了类似于Android Sliding Menu using Navigation Drawer的导航抽屉。幻灯片菜单正常,但非常宽(宽度很长)..当我在我的手机/ TAB中检查它时,它是非常长的纵向和横向模式。它几乎触及屏幕的另一面。像全屏一样。
当我运行AndroidHive中给出的项目时。事情很好。我刚刚根据需求调整了XML
这是抽屉列表XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:background="@drawable/list_selector" >
<ImageView
android:id="@+id/icon"
android:layout_width="25dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:contentDescription="@string/desc_list_item_icon"
android:src="@drawable/maps" />
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_toRightOf="@id/icon"
android:gravity="center_vertical"
android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:paddingRight="40dp"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:textColor="@color/list_item_title" />
<TextView
android:id="@+id/counter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="8dp"
android:background="@drawable/roundcircle"
android:paddingLeft="12dp"
android:paddingRight="12dp"
android:paddingTop="4dp"
android:textColor="@color/counter_text_color"
android:textStyle="bold" />
</RelativeLayout>
这是ListView.XML,它有Slide ListView
<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/frame_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ListView
android:id="@+id/left_drawer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@color/list_background"
android:choiceMode="singleChoice"
android:divider="@color/list_divider"
android:dividerHeight="1dp"
android:listSelector="@drawable/list_selector" />
</android.support.v4.widget.DrawerLayout>
我不确定我哪里出错了?
答案 0 :(得分:2)
ListView
需要有更小的宽度。试试android:layout_width="240dp"
。
这基本上基于官方指南:http://developer.android.com/training/implementing-navigation/nav-drawer.html
我的提示:使用官方文档仔细检查教程:)
答案 1 :(得分:2)
您尚未为NavigationDrawer
指定适当的宽度。如果您将宽度设置为match_parent
,它将 - 正如其名称所暗示的那样 - 与父级一样大。并且您不希望NavigationDrawer
与屏幕一样大,因此请指定宽度约240dp
。尝试这样的事情:
<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/frame_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ListView
android:id="@+id/left_drawer"
android:layout_width="match_parent"
android:layout_height="240dp"
android:layout_gravity="start"
android:background="@color/list_background"
android:choiceMode="singleChoice"
android:divider="@color/list_divider"
android:dividerHeight="1dp"
android:listSelector="@drawable/list_selector" />
</android.support.v4.widget.DrawerLayout>