如何在导航抽屉布局中添加标题?

时间:2013-06-05 14:36:52

标签: android android-layout android-menu navigation-drawer

[UPDATE]

我通过添加addHeaderView来解决问题:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mTitle = mDrawerTitle = getTitle();
    mPlanetTitles = getResources().getStringArray(R.array.planets_array);
    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    mDrawerList = (ListView) findViewById(R.id.left_drawer);

    LayoutInflater inflater = getLayoutInflater();
    ViewGroup mTop = (ViewGroup)inflater.inflate(R.layout.header_listview_menu, mDrawerList, false);
    mDrawerList.addHeaderView(mTop, null, false);

================================

我的问题很简单!

我想如何在导航栏中添加标题?

我已经为每个项目创建了带有listview(图标+文字)的导航抽屉。

非常感谢,

enter image description here

3 个答案:

答案 0 :(得分:11)

您可以通过教导ListView返回标题行以及详细信息行,以与在任何其他ListAdapter中添加标题相同的方式执行此操作。在较低级别,这涉及覆盖getViewTypeCount()中的getItemViewType()ListAdapter等方法,并让getView()知道行类型之间的差异。或者,使用现有的高级实施,例如https://github.com/emilsjolander/StickyListHeadershttp://code.google.com/p/android-amazing-listview/或搜索android listview headers时找到的任何其他实施。

答案 1 :(得分:5)

TextView放在ListView上方,并将其包裹在垂直LinearLayout内。提供给ListView android:layout_weight="1"android:layout_height="0dip"

答案 2 :(得分:0)

也许有点晚了,但我想我有一个更简单的解决方案。在Activity的布局中,您可以添加例如LinearLayout,而不是在DrawerLayout中添加listView,您可以轻松添加分隔符和行。例如:

<RelativeLayout 
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <com.astuetz.viewpager.extensions.PagerSlidingTabStrip
            android:id="@+id/indicator"
            android:layout_height="48dip"
            android:layout_width="fill_parent"/>

        <ViewPager
            android:id="@+id/pager"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="1"/>

    </LinearLayout>

</RelativeLayout>

<LinearLayout 
    android:orientation="vertical"
    android:id="@+id/left_drawer"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:background="#111">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Separator 1"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="First button"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Separator 2"/>

</LinearLayout>

在Activity中,您可以将监听器添加到按钮中。

希望有所帮助!