如何在NavigationView的菜单项中设置椭圆形?

2024-06-19

我想在 NavigationView 的菜单项中设置 android:ellipsize="end" 。在我当前的实现中,当菜单项中的文本太长时,它只是在末尾被剪切。这是我到目前为止所尝试过的:

<android.support.design.widget.NavigationView
        app:itemTextAppearance="@style/AppTheme.Widget.NavigationView.TextAppearance"
        android:id="@+id/navigation"
        style="@style/AppTheme.Widget.NavigationView"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:menu="@menu/drawer_view"/>

<style name="AppTheme.Widget.NavigationView" parent="Widget.Design.NavigationView">
        <item name="android:textAppearance">@style/AppTheme.Widget.NavigationView.TextAppearance</item>
        <item name="android:background">@color/drawer_background</item>
        <item name="itemTextColor">@color/color_drawer_item</item>
        <item name="itemIconTint">@color/color_drawer_item</item>
</style>

<style name="AppTheme.Widget.NavigationView.TextAppearance">
        <item name="android:ellipsize">end</item>
        <item name="android:maxLines">1</item>
</style>

Edit:

另一种可能的解决方案描述如下:Android NavigationView:不显示完整项目且不截断 https://stackoverflow.com/questions/35600267/android-navigationview-not-show-full-item-and-not-truncate/35952683#comment59998866_35952683


添加新样式样式.xml:

资源/值/styles.xml

<style name="TextAppearance">
    <item name="android:ellipsize">end</item>
</style>

将新样式设置为NavigationView:

资源/布局/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" />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在NavigationView的菜单项中设置椭圆形? 的相关文章

随机推荐