2017-04-19 19 views
0

我创建NavigationView喜欢这个 My Navigation View ScreenShot的Android NaviagtionDrawer项目文本对齐

,这是我的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> 

我想设置这样

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> 

感谢

+0

最后我找到了一个解决方案,我创建了一个列表视图,而不是菜单,并给文本对齐,其工作正常,谢谢 –

+0

我给了我下面的解决方案,请检查它 –

回答

0

我创建了Listview而不是菜单

这是我的XML代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
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:maxWidth="250dp" 
     android:layout_gravity="end" 
     android:background="#0284fe" 
     android:fitsSystemWindows="true"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical"> 

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

      <ListView 
       android:id="@+id/lst_menu_items" 
       android:layout_width="match_parent" 
       android:layout_height="0dp" 
       android:layout_weight="1" 
       android:divider="@null" 
       android:dividerHeight="0dp" 

       /> 
     </LinearLayout> 

    </android.support.design.widget.NavigationView> 


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

然后我用一个自定义adpater和TextView的,然后我对准我的文字重心。

这是我的最终输出 This is my output

0

尝试在你的NavigationView设置android:layout_gravity="center_horizontal"而不是android:layout_gravity="end"

+0

嗨尼古拉斯,我试过这种方式,但它的影响到NavigationView,而不是项目中的文本。 –

0

android:gravity="center"将其使用的查看内容的严重性。 android:layout_gravity设置视图的严重性或其父级中的布局

1

可以center-align菜单项动态使用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);