我有一个带有导航视图的应用程序,用于我的DrawerLayout.我在菜单中添加了编程项目,因为我通过网络收到信息.但有时候,一个项目名称可能很长,即使有了椭圆形图标“……”也会被切断.
有人知道如何为菜单项设置多行吗?
谢谢
解决方法
覆盖
Android支持设计库中的design_navigation_menu_item.xml并修改您需要的东西(设置android:ellipsize =“end”和android:maxLines =“2”)
您的res / layout / design_navigation_menu_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>
但是,您应该简化文本以正确遵循Material Design准则.
你不必覆盖任何东西只是椭圆化文本:
>向styles.xml添加新样式
>将新样式设置为NavigationView
res / values / styles.xml
<style name="TextAppearance"> <item name="android:ellipsize">end</item> </style>
res / layout / activity_main.xml
<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" app:theme="@style/TextAppearance" />