导航抽屉非常宽

时间:2014-07-29 12:23:14

标签: android navigation-drawer

我已经实现了类似于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>

我不确定我哪里出错了?

2 个答案:

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