我正在开发一个应用程序,我想添加一个导航抽屉,其中包含一个标题(图像,全名和电子邮件)和一个ExpandableListView,用户在应用程序中导航。
到目前为止,我已经使用导航系统创建了ExpandableListView,但我没有设法为导航抽屉创建标题。
我试图制作一个<include/>
标签来实现drawer_layout.xml中的标头,但无济于事。
这就是我想要的样子(忽略ExpandableListView条目;只是一个例子):http://imgur.com/xlsXvd7
以下是我的布局文件:
drawer_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<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">
<!-- Activity Content-->
<FrameLayout
android:id="@+id/activity_frame"
android:layout_height="match_parent"
android:layout_width="match_parent">
</FrameLayout>
<!-- Navigation Drawer Items -->
<ExpandableListView
android:id="@+id/left_drawer"
android:layout_height="match_parent"
android:layout_width="240dp"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:groupIndicator="@android:color/transparent"
android:divider="@android:color/transparent"
android:background="#444444"/>
</android.support.v4.widget.DrawerLayout>
drawer_header.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="#444444">
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:textColor="#ffffff"
android:text="Example Example"
android:textSize="14sp"
android:textStyle="bold"
android:layout_centerVertical="true"
android:layout_alignStart="@+id/email" />
<TextView
android:id="@+id/email"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ffffff"
android:layout_marginLeft="16dp"
android:text="example@gmail.com"
android:textSize="14sp"
android:textStyle="normal"
android:layout_alignBottom="@+id/circleView"
android:layout_toEndOf="@+id/circleView" />
<de.hdodenhof.circleimageview.CircleImageView
android:layout_width="60dip"
android:layout_height="60dip"
android:src="@drawable/ic_face_white_48dp"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:id="@+id/circleView"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true" />
</RelativeLayout>
我还使用自定义ExpandableListAdapter(如果需要,会发布代码)。
非常感谢任何帮助。
感谢您的时间。
答案 0 :(得分:2)
您需要将ExpandableListView
包装在任何其他视图中。
原因是DrawerLayout
可以有两个子视图,一个用于NavigationDrawer
,另一个用作Container View
,我发布你的xml文件,附加内容看看是否有帮助
<?xml version="1.0" encoding="utf-8"?>
<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">
<!-- Activity Content-->
<FrameLayout
android:id="@+id/activity_frame"
android:layout_height="match_parent"
android:layout_width="match_parent">
</FrameLayout>
<!-- Navigation Drawer Items -->
<LinearLayout
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_gravity="start"
android:layout_width="240dp">
<include
layout="@layout/drawer_header" />
<ExpandableListView
android:id="@+id/left_drawer"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:groupIndicator="@android:color/transparent"
android:divider="@android:color/transparent"
android:background="#444444"/>
</LinearLayout>
</android.support.v4.widget.DrawerLayout>