【问题标题】:NavigationView: custom item layout with app:actionLayout how to?NavigationView:使用 app:actionLayout 自定义项目布局如何?
【发布时间】:2015-11-13 09:23:38
【问题描述】:

根据 Ian Lake 最近的帖子

如果你最近没有看过 NavigationView,它实际上得到了 版本 23.1.0 [1] 中的相当大的更新,增加了 app:actionLayout 支持自定义视图支持。

如何在 NavigationView 中使用app:actionLayout

使用

<group android:checkableBehavior="single">
    <item
        android:id="@+id/navigation_drawer_item_1"
        android:icon="@drawable/ic_menu_1"
        android:title="@string/navigation_drawer_item_1"
        app:actionLayout="@layout/menu_test_1"
        />
    <item
        android:id="@+id/navigation_drawer_item_2"
        android:icon="@drawable/ic_menu_2"
        android:title="@string/navigation_drawer_item_2"
        app:actionLayout="@layout/menu_test_1"
        />
</group>

<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"
    app:headerLayout="@layout/nav_header_main"
    app:menu="@menu/activity_main_drawer">

它不起作用。 它在项目的右侧显示 actionLayout。 删除 android:iconandroid:title 似乎也不起作用。

我该如何解决?

谢谢 问候

【问题讨论】:

  • 您找到解决方案了吗?即使我正在使用自定义操作布局中的菜单项,它似乎也无法正常工作
  • 不幸的是我还没有解决方案...我认为我们应该将 pur 自定义回收器视图放在 NavigationView 中...
  • 缺少应用程序:showAsAction="always"?
  • 我试过了……还是不行。

标签: android menuitem navigationview


【解决方案1】:

我通过从 android:title 中删除任何文本来解决这个问题。

导航视图:

<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"
    app:headerLayout="@layout/nav_header_main"
    app:menu="@menu/activity_main_drawer" />

菜单代码(activity_main_drawer):

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <group android:checkableBehavior="single">
        <item android:id="@+id/nav_item1"
            app:showAsAction="always"
            android:title=""
            app:actionLayout="@layout/menu_item_layout" />
    </group>
</menu>

menu_item_layout:

<?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="match_parent">

    <TextView android:id="@+id/item_text"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_vertical"
        android:text="Item text" />
</RelativeLayout>

【讨论】:

【解决方案2】:

试试这个

<group
        android:id="@+id/group2"
        android:checkableBehavior="none">
        <item
            android:id="@+id/nav_build_info"
            android:icon="@null"
            android:title="@null"
            app:actionLayout="@layout/layout"
            app:showAsAction="always" />
    </group>

并且还将actionLayout的布局设为android:layout_width="wrap_content"

【讨论】:

    猜你喜欢
    • 2015-08-18
    • 2015-08-24
    • 1970-01-01
    • 2013-03-06
    • 1970-01-01
    • 2013-06-28
    • 2017-06-24
    • 1970-01-01
    相关资源
    最近更新 更多