Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 导航视图多行文字_Android_Navigation Drawer_Multiline - Fatal编程技术网

Android 导航视图多行文字

Android 导航视图多行文字,android,navigation-drawer,multiline,Android,Navigation Drawer,Multiline,我有一个带有抽屉布局导航视图的应用程序。我以编程方式在菜单中添加项目,因为我通过网络接收信息。但有时,项目名称可能很长,甚至连省略号图标都会被截断“…” 有人知道如何为我的菜单项设置多行吗 谢谢看看这个。默认的android幻灯片菜单不太灵活,您很可能需要创建自定义视图。 我是AndroidHive的教程。覆盖Android支持设计库中的design\u navigation\u menu\u item.xml并修改您需要的内容(设置Android:ellipsize=“end”和Android

我有一个带有抽屉布局导航视图的应用程序。我以编程方式在菜单中添加项目,因为我通过网络接收信息。但有时,项目名称可能很长,甚至连省略号图标都会被截断“…”

有人知道如何为我的菜单项设置多行吗

谢谢

看看这个。默认的android幻灯片菜单不太灵活,您很可能需要创建自定义视图。
我是AndroidHive的教程。

覆盖Android支持设计库中的design\u navigation\u menu\u item.xml并修改您需要的内容(设置
Android:ellipsize=“end”
Android:maxLines=“2”

您的res/layout/design\u navigation\u menu\u item.xml应该如下所示:

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
    <CheckedTextView
        android:id="@+id/design_menu_item_text"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:drawablePadding="@dimen/design_navigation_icon_padding"
        android:gravity="center_vertical|start"
        android:textAppearance="@style/TextAppearance.AppCompat.Body2"
        android:ellipsize="end"
        android:maxLines="2" />
    <ViewStub
        android:id="@+id/design_menu_item_action_area_stub"
        android:inflatedId="@+id/design_menu_item_action_area"
        android:layout="@layout/design_menu_item_action_area"
        android:layout_width="wrap_content"
        android:layout_height="match_parent" />
</merge>
<android.support.design.widget.NavigationView
    android:id="@+id/nav_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    app:headerLayout="@layout/nav_draw_header">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/rv"
        android:layout_marginTop="160dp"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</android.support.design.widget.NavigationView>
<com.google.android.mayerial.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"
app:itemMaxLines="2" />
res/layout/activity_main.xml


我也遇到了同样的问题,我尝试了又尝试,
菜单
没有任何进展,我不是说这是不可能的,但我找不到打破
菜单项
行的方法

但是如果您不坚持使用
菜单
,我建议您在布局中使用
列表视图
回收视图

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
    <CheckedTextView
        android:id="@+id/design_menu_item_text"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:drawablePadding="@dimen/design_navigation_icon_padding"
        android:gravity="center_vertical|start"
        android:textAppearance="@style/TextAppearance.AppCompat.Body2"
        android:ellipsize="end"
        android:maxLines="2" />
    <ViewStub
        android:id="@+id/design_menu_item_action_area_stub"
        android:inflatedId="@+id/design_menu_item_action_area"
        android:layout="@layout/design_menu_item_action_area"
        android:layout_width="wrap_content"
        android:layout_height="match_parent" />
</merge>
<android.support.design.widget.NavigationView
    android:id="@+id/nav_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    app:headerLayout="@layout/nav_draw_header">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/rv"
        android:layout_marginTop="160dp"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</android.support.design.widget.NavigationView>
<com.google.android.mayerial.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"
app:itemMaxLines="2" />

你不应该改变这一点


查看材料设计指南:

只需在导航视图标签上添加
app:itemMaxLines=“2”
属性,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
    <CheckedTextView
        android:id="@+id/design_menu_item_text"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:drawablePadding="@dimen/design_navigation_icon_padding"
        android:gravity="center_vertical|start"
        android:textAppearance="@style/TextAppearance.AppCompat.Body2"
        android:ellipsize="end"
        android:maxLines="2" />
    <ViewStub
        android:id="@+id/design_menu_item_action_area_stub"
        android:inflatedId="@+id/design_menu_item_action_area"
        android:layout="@layout/design_menu_item_action_area"
        android:layout_width="wrap_content"
        android:layout_height="match_parent" />
</merge>
<android.support.design.widget.NavigationView
    android:id="@+id/nav_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    app:headerLayout="@layout/nav_draw_header">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/rv"
        android:layout_marginTop="160dp"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</android.support.design.widget.NavigationView>
<com.google.android.mayerial.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"
app:itemMaxLines="2" />

在NavigationDrawer中添加一个样式,将行数声明为“2”,如下所示:

 <style name="NavigationDrawerStyle">
        <item name="android:lines">2</item>
    </style>

2.
在你看来:

<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:background="@drawable/estilo"
        android:fitsSystemWindows="true"
        app:itemTextColor="@color/white"
        app:theme="@style/NavigationDrawerStyle"
        app:menu="@menu/activity_main_drawer" />

将样式添加到NavigationDrawer,然后在样式中包含两行

<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:background="@drawable/estilo"
    android:fitsSystemWindows="true"
    app:itemTextColor="@color/white"
    app:theme="@style/NavigationDrawerStyle"
    app:menu="@menu/activity_main_drawer" />

<style name="NavigationDrawerStyle">
    <item name="android:lines">2</item>
</style>

2.

Nice。。在浪费了很多时间之后。找到解决办法了。谢谢回答:)谢谢。使用以下样式,我成功地显示了2行,而没有覆盖任何内容:2此解决方案过去运行良好。但是现在,当我构建应用程序时,
design\u navigation\u menu\u item.xml
文件正在恢复到其原始版本。有人有解决办法吗?(顺便说一句,我已经尝试过离线构建应用程序,但徒劳无功)就个人而言,在某些情况下,我相信违反材料设计准则并不一定意味着糟糕的UI设计。为了支持@Kathir所说的,这就是一个这样的案例(在我的实施中),它们被称为“指南”而不是“规则”是有原因的。基本上:“这是你的应用程序,让它成为你自己的。这里有一些有用的指导方针来帮助你进行设计。请随意使用它们……或者不使用。”注意:正确的版本是
1.1.0
,在
1.0.0
材料库中没有这样的属性或方法