如何添加自定义视图在新NavigationView [英] How to add custom views in the new NavigationView

查看:1532
本文介绍了如何添加自定义视图在新NavigationView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想加一个交换机作为菜单项中的<一个href="https://developer.android.com/reference/android/support/design/widget/NavigationView.html">NavigationView像这样

我用的actionViewClass属性,但它只能显示标题。

 &LT;项目
机器人:ID =@ + ID / navi_item_create_notifications_sound
机器人:标题=通知声音
的xmlns:程序=htt​​p://schemas.android.com/apk/res-auto
应用程序:actionViewClass =android.support.v7.widget.SwitchCompat
应用程序:showAsAction =总是/&GT;
 

解决方案

的新的支持库23.1

允许使用在导航视图中的项目的自定义视图使用应用程序:actionLayout或使用MenuItemCompat.setActionView()

下面是我如何成功地显示SwitchCompat

menu_nav.xml

 &LT; XML版本=1.0编码=UTF-8&GT?;
 

 &LT;组
    机器人:ID =@ + ID /第一
    机器人:checkableBehavior =单一&GT;

    &LT;项目
        机器人:ID =@ + ID / navi_item_1
        机器人:图标=@可绘制/ ic_feed_grey_500_24dp
        机器人:标题=频道/&GT;
    &LT;项目
        机器人:ID =@ + ID / navi_item_2
        机器人:图标=@可绘制/ ic_explore_grey_500_24dp
        机器人:标题=资源管理器/&GT;
    &LT;项目
        机器人:ID =@ + ID / navi_item_4
        机器人:图标=@可绘制/ ic_settings_grey_500_24dp
        机器人:标题=设置/&GT;

&LT; /组&gt;
&LT;组
    机器人:ID =@ + ID /秒
    机器人:checkableBehavior =单一&GT;
    &LT;项目的xmlns:程序=htt​​p://schemas.android.com/apk/res-auto
        机器人:ID =@ + ID / navi_item_create_notifications_sound
        机器人:标题=通知声音
        应用程序:actionLayout =@布局/ menu_swich
        应用程序:showAsAction =总是/&GT;

&LT; /组&gt;
 

menu_switch.xml

 &LT; XML版本=1.0编码=UTF-8&GT?;
&LT; android.support.v7.widget.SwitchCompat的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    的xmlns:程序=htt​​p://schemas.android.com/apk/res-auto
    机器人:layout_width =WRAP_CONTENT
    机器人:layout_height =match_parent
    机器人:重力=右| center_vertical
    应用程序:buttonTint =@色/ colorPrimary
    应用程序:switchPadding =@扪/ spacing_small/&GT;
 

I'm trying to add a switch as menuitem in NavigationView like this

I used the the actionViewClass attribute but it only shows the title.

<item
android:id="@+id/navi_item_create_notifications_sound"
android:title="Notifications Sounds"
xmlns:app="http://schemas.android.com/apk/res-auto"
app:actionViewClass="android.support.v7.widget.SwitchCompat"
app:showAsAction="always" />

解决方案

The new support library 23.1

allows using a custom view for the items in Navigation View using app:actionLayout or using MenuItemCompat.setActionView()

Here's how I managed to display a SwitchCompat

menu_nav.xml

<?xml version="1.0" encoding="utf-8"?>

<group
    android:id="@+id/first"
    android:checkableBehavior="single">

    <item
        android:id="@+id/navi_item_1"
        android:icon="@drawable/ic_feed_grey_500_24dp"
        android:title="Feed" />
    <item
        android:id="@+id/navi_item_2"
        android:icon="@drawable/ic_explore_grey_500_24dp"
        android:title="Explore" />
    <item
        android:id="@+id/navi_item_4"
        android:icon="@drawable/ic_settings_grey_500_24dp"
        android:title="Settings" />

</group>
<group
    android:id="@+id/second"
    android:checkableBehavior="single">
    <item xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/navi_item_create_notifications_sound"
        android:title="Notifications Sounds"
        app:actionLayout="@layout/menu_swich"
        app:showAsAction="always" />

</group>

menu_switch.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.SwitchCompat xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:gravity="right|center_vertical"
    app:buttonTint="@color/colorPrimary"
    app:switchPadding="@dimen/spacing_small" />

这篇关于如何添加自定义视图在新NavigationView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆