Android NavigationView:不显示完整项目且不截断

5

问题:NavigationView无法显示菜单项的完整文本,也无法截断文本。

我能正确看到这个项目 - 两个单词“小标题”:

<item
android:id="@+id/example1"
android:icon="@drawable/filter_2"
android:title="Small title"
android:checked="false"
app:actionLayout="@layout/menu_counter" />
/>

在下一个项目中,我只看到前两个单词 "小标题",没有对下一个单词 "andveryverylongword" 进行任何截断:

<item
android:id="@+id/example2"
android:icon="@drawable/filter_2"
android:title="Small title andveryverylongword"
android:checked="false"
app:actionLayout="@layout/menu_counter" />
/>

小部件:

<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
ndroid: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"/>

此外:AndroidStudio 1.5、支持库。
编辑: 以下是在Android Studio中的“导航抽屉活动”标准项目示例。
activity_main_drawer.xml: menu 在移动设备中: not see long word
2个回答

7

我刚刚做好了这件事 * 覆盖design_navigation_item.xml并将其更改为使用 android:layout_height="wrap_content" android:minHeight="?android:listPreferredItemHeightSmall"

  • 覆盖design_navigation_menu_item.xml以使用maxLines=2

有点酷,我简直不敢相信那会起作用。感谢stackoverflow上的那个人提到覆盖图标大小,这帮助我想到了这个方向。


1
我有一个类似于https://dev59.com/AJXfa4cB1Zd3GeqPdFLc中描述的问题。你能提供更多关于覆盖design_navigation_menu_item.xml的信息吗? - Aleksander Mielczarek
1
@AleksanderMielczarek 基本上只需从 file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/design/res/layout/design_navigation_menu_item.xml 中复制并粘贴代码到您在 /rest/layout 目录中创建的新 design_navigation_menu_item.xml 文件中,然后修改您需要的内容。必要时深入源代码以查看是否需要覆盖子标题或其他任何内容。我仍然没有弄清楚复合绘图是否可以像项目符号一样对齐到左上角而不是中心。 - nAndroid

5
app:itemMaxLines="2" 添加到布局的 NavigationView 中即可。这对我很有效。
<com.google.android.material.navigation.NavigationView
            android:id="@+id/navigation_view"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="end"
            app:itemMaxLines="2"
            android:background="@color/background_color"
            app:headerLayout="@layout/nav_header_main"
            app:menu="@menu/activity_main_drawer" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接