Android NaviagtionDrawer 项目文本对齐

标签 android android-studio navigation-drawer android-xml

我是这样创建 NavigationView 的 My Navigation View ScreenShot

,这是我的xml代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/top_parent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context=".Dashbored">

<include
android:id="@+id/tool_bar"
layout="@layout/tool_bar">
</include>

<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/tool_bar"
android:elevation="7dp"
android:fitsSystemWindows="true"
tools:openDrawer="end">


<LinearLayout
android:id="@+id/linear_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">


<FrameLayout
android:id="@+id/frame_container"
android:layout_width="match_parent"
android:layout_height="match_parent">

<include layout="@layout/f_home_screen" />

</FrameLayout>


</LinearLayout>

<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="end"
android:background="#0284fe"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header"
app:itemBackground="@drawable/drawer_backg"
app:itemIconTint="@color/drawer_item"
app:itemTextAppearance="@style/NavDrawerTextStyle"
app:itemTextColor="@color/windowBackground"
app:menu="@menu/main_drawer" />


</android.support.v4.widget.DrawerLayout>
</RelativeLayout>   

我想这样设置Item文本对齐居中

I need a output like this

这是我的菜单xml

<?xml version="1.0" encoding="utf-8"?><menu 
xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_inspec_rpt"
android:title="INSPECTION REPORTS"
/>
<item
android:id="@+id/nav_action"
android:title="ACTION ITEMS"
/>
<item
android:id="@+id/nav_appoint"
android:title="APPOINTMENTS" />
<item
android:id="@+id/nav_applst"
android:title="MAIN APPOINTMENTS" />
<item
android:id="@+id/nav_logout"
android:title="LOG OUT" />
</group>

我想得到像第二张图片那样的输出,请帮助我,我试过像这样在 style.xml 中提供样式,但我不知道如何对齐文本,我通过谷歌尝试了一种不同的方式,但是没有运气。 :(

<style name="NavDrawerTextStyle" parent="Base.TextAppearance.AppCompat">
<item name="android:textColor">@color/colorPrimaryDark</item>
<item name="android:textSize">16dp</item>
<item name="android:fontFamily">serif</item>
<item name="android:textStyle">bold</item>
</style>

谢谢

最佳答案

您可以在 Activity 中使用 SpannableString 动态地居中对齐菜单项:

int positionOfMenuItem = 0; //or any other postion

MenuItem item = menu.getItem(positionOfMenuItem);

SpannableString s = new SpannableString(settingsItemTitle);

s.setSpan(new AlignmentSpan.Standard(Alignment.ALIGN_CENTER), 0, s.length(), 0);

item.setTitle(s);

关于Android NaviagtionDrawer 项目文本对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43495122/

相关文章:

android-studio - 将 Android Studio 更新到 3.3 后,Crashlytics 无法正常工作

java - 如何获取数组中json子元素的值

android - 从 url 为抽屉导航标题背景加载图像

android - here.com mapmarker setTitle 未显示在 map 上

android - 如何检测 recyclerview 的滚动超出范围?

android - 谷歌日历邀请电子邮件中的 URL 深度链接不起作用

android - Google Drive Android API ConnectionResult 错误

java - 在向上导航的对象引用上获取 null

ios - ios APP中的侧边栏或抽屉导航?

android - Instanceof 不返回正确答案