2016-07-06 38 views
4

我目前正在開發一個支持NavigationView的Android應用程序。我不得不質疑,因爲我想要它: (1)我想將導航元素分爲兩個區域:一個在頂部下方的標題和一個在底端。 (2)我想刪除分隔線和它下面的元素之間的填充。帶有內部空間的Android NavigationView

它的外觀VS怎樣看: How it looks vs how it should look

我知道有一種方法可以覆蓋填充值,這將解決(2)。但是這種感覺很髒,也許還有另一種方法來實現這兩個。我的想法是獲得「設置」元素,並以編程方式更改其佈局,但到目前爲止,我沒有找到一種方法來實現這一目標。或者我真的必須自己製作頁腳?

此外,我不太確定我應該使用Google搜索的流行語。也許已經有一個簡單的答案了。

我目前的代碼。現在,Activity中沒有佈局更改,因此我沒有添加它。

activity_main.xml中:

<android.support.v4.widget.DrawerLayout 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/main_drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context=".main.MainActivity"> 

    <!-- The content --> 
    <LinearLayout>...</LinearLayout> 

    <!-- The navigation drawer --> 
    <android.support.design.widget.NavigationView 
     android:id="@+id/main_navigationview" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:background="@android:color/white" 
     app:headerLayout="@layout/mainnav_header" 
     app:itemBackground="@drawable/menu_background" 
     app:itemIconTint="@color/menu_text" 
     app:itemTextColor="@color/menu_text" 
     app:menu="@menu/maindrawer"> 

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

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

menu.xml文件:

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto"> 

<group android:id="@+id/main_drawer_menu1" android:checkableBehavior="single"> 
    <item 
     android:id="@+id/main_navigationview_request" 
     android:checkable="false" 
     android:enabled="false" 
     android:icon="@drawable/ic_navigationdrawer_request" 
     android:title="@string/main_navigation_request" 
     app:actionLayout="@layout/menuitem_default" /> 
    <item 
     android:id="@+id/main_navigationview_invitations" 
     android:checked="true" 
     android:icon="@drawable/ic_navigationdrawer_invitations" 
     android:title="@string/main_navigation_invitations" 
     app:actionLayout="@layout/menuitem_default" /> 
    <item 
     android:id="@+id/main_navigationview_prev" 
     android:icon="@drawable/ic_navigationdrawer_previous" 
     android:title="@string/main_navigation_previnvites" 
     app:actionLayout="@layout/menuitem_default" /> 
    <item 
     android:id="@+id/main_navigationview_info" 
     android:icon="@drawable/ic_navigationdrawer_info" 
     android:title="@string/main_navigation_info" 
     app:actionLayout="@layout/menuitem_default" /> 
</group> 
<group android:id="@+id/main_drawer_menu2" android:checkableBehavior="single"> 
    <item 
     android:id="@+id/main_navigationview_settings" 
     android:checked="true" 
     android:icon="@drawable/ic_navigationdrawer_settings" 
     android:title="@string/main_navigation_settings" 
     app:actionLayout="@layout/menuitem_default" /> 
    <item 
     android:id="@+id/main_navigationview_logout" 
     android:icon="@drawable/ic_navigationdrawer_logout" 
     android:title="@string/main_navigation_logout" 

     app:actionLayout="@layout/menuitem_caution" /> 
</group> 

+0

我們可以有你的代碼? –

+0

當然,對不起。目前它只是這2個xml文件。活動內沒有佈局更改 – gtRfnkN

+0

我更喜歡右邊的那個,但這不是我想討論的問題。我只是想找到一種方法使佈局看起來像右側的佈局。 – gtRfnkN

回答

2

這條線除去圖標和文本之間的填充。

只添加以下行dimen.xml文件

<dimen tools:override="true" name="design_navigation_icon_padding">10dp</dimen> 
相關問題