【问题标题】:How to customize navigation drawer menu如何自定义抽屉式导航菜单
【发布时间】:2017-07-11 13:02:16
【问题描述】:

我必须自定义我的导航抽屉,这是 res/menu/activity_main_drawer.xml 中代码的一部分

<item
    android:title="Discover">
    <menu>
        <item
            android:id="@+id/nav_qrcode"
            android:icon="@drawable/read_qr"
            android:title="QRCode" />

        <item
            android:id="@+id/favorite"
            android:icon="@drawable/favorite"
            android:title="favorite" />
    </menu>
</item>

这是 res/layout/activity_home.xml 中的布局

<android.support.design.widget.NavigationView
    android:id="@+id/nav_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"
    android:background="#B59154"
    app:itemTextColor="#ffffff"
    app:menu="@menu/activity_main_drawer" />

我想为第一个项目分配背景颜色,我该怎么做?

“发现”是一个类别,其他项目是manù(可点击)。

我不知道如何为我的“类别”分配不同的布局。

【问题讨论】:

    标签: android xml navigation-drawer


    【解决方案1】:

    您始终可以选择创建您的custom layout,这样您就可以按照自己的方式为您的导航抽屉设计它。 例如。

    导航视图

    <android.support.design.widget.NavigationView
            android:id="@+id/navigation_view"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="start">
    
    
    
        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                >
                <include layout="@layout/lay_drawer_menu" />
    
            </LinearLayout>
        </ScrollView>
        </android.support.design.widget.NavigationView>
    

    lay_drawer_menu.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/layout_drawer"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:animateLayoutChanges="true"
        android:orientation="vertical">
    
        <TextView
            android:id="@+id/txt1"
            android:textcolor = "whatever you want"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:onClick="onClick"
            android:text="Activities" />
    
        <TextView
            android:id="@+id/txt2"
          android:textcolor = "whatever you want"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:onClick="onClick"
            android:text="Add Detail"
            android:textColor="@android:color/black" />
    
    
    </LinearLayout>
    

    活动

      @Override
            public void onClick(View view) {
    
                switch (view.getId()) {
                    case R.id.txt1: {
                        drawerLayout.closeDrawers();
    
                       //your code.
    
                    }
                    break;
                   case R.id.txt2: {
                        drawerLayout.closeDrawers();
    
                       //your code.
    
                    }
                    break;
    
                }
    
            }
    

    希望这会有所帮助。

    【讨论】:

    • 确实有用
    • 您好,我无法检测到 onclick。你能帮我解决这个问题吗?
    猜你喜欢
    • 1970-01-01
    • 2023-03-08
    • 2017-02-13
    • 1970-01-01
    • 1970-01-01
    • 2020-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多