2017-04-19 18 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);