2017-06-20 51 views
-1

你好家伙我试图改变我的导航抽屉项目的高度,我不知道如何,我已经到处寻找,尽我所能,但似乎没有任何工作..如何自定义导航抽屉项目高度

Result

这是定制有有图像下的文本,但我也想那个形象要大些我的抽屉式导航栏项目。

结果我仰视的是:

Menu Items

随着高度的周围75dp为每一个项目,也是我希望菜单上的宽度短,得到的图像在外观。

我使用的是自定义布局我当然项目,我命名为:menu_item.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:layout_margin="10dp"> 

    <ImageView 
     android:layout_width="75dp" 
     android:layout_height="75dp" 
     android:src="@drawable/menu_icon"/> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Menu Title" 
     android:textSize="16sp" 
     android:textColor="@color/white" /> 

</LinearLayout> 

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<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/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:openDrawer="start"> 

    <include 
     layout="@layout/app_bar_main" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

    <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:background="@color/colorPrimaryDark" 
     android:fitsSystemWindows="true" 
     app:headerLayout="@layout/nav_header_main" 
     app:menu="@menu/activity_main_drawer" /> 

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

最后的菜单; activity_main_drawer.xml

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto" > 

     <item 
      android:id="@+id/nav_profile" 
      app:actionLayout="@layout/menu_item"/> 
</menu> 

任何想法如何实现我想要什么?在此先感谢

编辑:当我在我的自定义项目放大图片如下:

这是menu_item.xml

<ImageView 
     android:layout_width="75dp" 
     android:layout_height="75dp" 
     android:src="@drawable/menu_icon"/> 

..我得到这样的结果:

result2

正如你看到我的形象比项目更大..

+1

你可以自定义导航布局 –

+0

要实现这一点,只需创建一个自定义布局。 – RameshJaga

+0

@Anas你试过我的答案吗? – Moulesh

回答

5

添加到您的styles.xml

<style name="NavigationTheme" parent="AppTheme"> 
     <item name="listPreferredItemHeightSmall">60dp</item><!-- menu item height- vary as u need --> 
    </style> 

,并在抽屉布局SHD您的导航视图包括主题LIK这

<android.support.design.widget.NavigationView 
     android:id="@+id/nav_view" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:theme="@style/NavigationTheme" 
     android:layout_gravity="start" 
     android:fitsSystemWindows="true" 
     app:headerLayout="@layout/nav_header_main" 
     app:menu="@menu/activity_main_drawer" /> 
+0

这是完美的工作,谢谢,还有一件事请,我如何居中该项目,因为它停留在右侧.. – Anas

+0

因为你有修改你的项目xml,使线性布局宽度匹配父&&和使布局的文本和图像视图的重心水平居中 – Moulesh

+0

它没有工作兄弟 – Anas

1

使自定义布局

<android.support.design.widget.NavigationView 
    android:id="@+id/nav_view" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:background="@color/white" 
    android:layout_gravity="start" 
    android:fitsSystemWindows="true"> 

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

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

你能解释更多吗?我试图做到这一点,并包括我的'menu_item。xml'结果是一样的 – Anas

+0

为菜单项做一个custom_view,并通过findViewById简单地获取java文件中的每个项目,并在每个项目上设置点击列表器 –

+0

谢谢你的工作,但它出现在导航的标题上菜单,并在菜单的左侧,我希望它在中心 – Anas