繁体   English   中英

在NavigationView中更改项目的样式

[英]Change the style of an item in a NavigationView

我有一个带有NavigationView(支持设计库)的DrawerLayout。 我已经能够设置标题并向视图中添加项目,但是我希望某些项目具有较小的文本,没有图标等。我不知道要在哪里指定新属性。 在我的drawer.xml中,其他项目在哪里,我不知道哪些属性可以更改它。

任何建议表示赞赏!

当前外观(图片)

我有两个具有预期外观的项目,最后一个是Logout,我想做得更小并有一个分隔器开销。

期望的外观(图片)

布局/ activity_main.xml中

<!-- A DrawerLayout is intended to be used as the top-level content view using match_parent for both width and height to consume the full space available. -->
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context=".MainActivity">

    <!-- As the main content view, the view below consumes the entire
         space available using match_parent in both dimensions. -->
    <LinearLayout
        android:orientation="vertical"
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

    </LinearLayout>

    <android.support.design.widget.NavigationView
        android:id="@+id/navigation"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:headerLayout="@layout/fragment_navdrawer_header"
        app:menu="@menu/drawer"/>

</android.support.v4.widget.DrawerLayout>

菜单/ drawer.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:checkableBehavior="single">
        <item
            android:id="@+id/navigation_item_1"
            android:icon="@drawable/ic_action_social_school"
            android:title="Courses"/>
        <item
            android:id="@+id/navigation_item_2"
            android:icon="@drawable/ic_action_action_grade"
            android:title="Grades"/>
        <item
            android:id="@+id/navigation_logout"
            android:title="Logout"
           />
    </group>
</menu>

这就是您的activity_main.xml样子。 工具栏已被注释掉,但是如果需要,请取消注释并添加工具栏布局。 在页面底部添加注销按钮和分隔符视图,并对它们进行样式设置,使其看起来像列表视图中的项目一样。

    <android.support.v4.widget.DrawerLayout

    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/DrawerLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:elevation="7dp">


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


    /*    <include
            android:id="@+id/tool_bar"
            layout="@layout/tool_bar">
        </include> */

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hello World" />

    </LinearLayout>


    <android.support.v7.widget.RecyclerView
        android:id="@+id/RecyclerView"
        android:layout_width="320dp"
        android:layout_height="match_parent"
        android:layout_gravity="left"

        android:background="#ffffff"
        android:scrollbars="vertical">

    </android.support.v7.widget.RecyclerView>

//devider 

  <View
                android:layout_width="match_parent"
                android:layout_height="2dp"
                android:alpha="0.2"
                android:background="@android:color/white" />
//logout button 
  <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="12dp"
        android:paddingTop="4dp"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Medium Text"
        android:id="@+id/txtLogout" />

</android.support.v4.widget.DrawerLayout>

代替drawer.xml添加新的item_row布局。 这对于recyclerView中的每一行

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:paddingTop="8dp"
    android:paddingBottom="8dp"
    android:layout_height="wrap_content"
    android:background="#ffffff"
    android:orientation="horizontal">


    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/rowIcon"
        android:paddingLeft="16dp"
        android:src="@drawable/ic_launcher"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="12dp"
        android:paddingTop="4dp"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Medium Text"
        android:id="@+id/rowText" />

</LinearLayout>

这只是抽屉外观的草图,但是您可以重新设计页眉以显示图像和所有东西。 以下是几个重要的链接,详细说明了这一点。

如何使用标题视图制作材质设计导航抽屉

Android Material Design入门

希望这可以帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM