导航抽屉项目在左侧没有采用适当的paddin

时间:2016-09-07 14:30:03

标签: java android xml material-design drawerlayout

我正在使用android材质设计抽屉布局。一切都很完美。但是我在Android API杠杆< = 19中留下了抽屉布局项目填充的问题。

它适用于Android API级别> = 21.请查看屏幕截图:

enter image description here

但是在Android API级别< = 19中,抽屉布局项目在左侧没有采用适当的填充。看截图:

enter image description here

我的xml文件如下:

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"
style="@style/styleActivity">

<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="300dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"
    app:headerLayout="@layout/nav_header_main"
    app:menu="@menu/activity_main_drawer"


    android:background="@drawable/graphics_drawer_bg"
    app:itemTextColor="@color/white_light"
    app:itemBackground="@drawable/graphics_item_bg"
    app:itemIconTint="@color/white_light"
    />

</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">

<group
    android:id="@+id/nav_top"
    android:checkableBehavior="single">
    <item
        android:id="@+id/nav_routine"
        android:icon="@drawable/ic_access_time_accent_24dp"
        android:title="Routines" />
    <item
        android:id="@+id/nav_class"
        android:icon="@drawable/ic_book_accent_24dp"
        android:title="Classes" />
    <item
        android:id="@+id/nav_exam"
        android:icon="@drawable/ic_local_library_black_24dp"
        android:title="Exams" />
    <item
        android:id="@+id/nav_event"
        android:icon="@drawable/ic_date_range_black_24dp"
        android:title="Events" />
    <item
        android:id="@+id/nav_statistics"
        android:icon="@drawable/ic_insert_chart_black_24dp"
        android:title="Statistics" />
</group>

<group
    android:id="@+id/nav_bottom"
    android:checkableBehavior="single">
    <item
        android:id="@+id/nav_settings"
        android:icon="@drawable/ic_settings_black_24dp"
        android:title="Settings" />
    <item
        android:id="@+id/nav_help"
        android:icon="@drawable/ic_help_outline_black_24dp"
        android:title="Help" />
</group>

</menu>

提前致谢。

4 个答案:

答案 0 :(得分:1)

尝试在android.support.design.widget.NavigationView中添加填充。

例如:

<android.support.design.widget.NavigationView
    ...
    android:padding="10dp"
    ...
/>
  

正如您在评论中提到的那样,您只想添加填充   具有 API <= 19 的设备。为此,请在res中创建两个文件夹   。目录

values-v11values-v21

在这些文件夹中,添加文件dimens.xml并在其中添加NavigationView的维度。

dimens.xml的{​​{1}}:

values-v11

<dimen name="padding_left">10dp</dimen> 的{​​{1}}:

dimens.xml

最后在values-v21看起来像这样:

No padding for API >= 21
<dimen name="padding_left">0dp</dimen>

更新

在材料设计中,边距和填充是预定义的,但您可以覆盖这些值。

NavigationView

我发现了here

答案 1 :(得分:0)

Try this as item

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#fff"
        android:padding="20dp"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#222"
        android:text="bla bla bla" />

答案 2 :(得分:0)

  <group
        android:checkableBehavior="single">

        <item
            android:id="@+id/ChatItem"
            android:icon="@drawable/chat_icon"
            android:title="@string/title_chat"/>
        <item
            android:id="@+id/ClipsItem"
            android:icon="@drawable/clips_icon"
            android:title="@string/title_clip"/>

        <item
            android:id="@+id/CretaeItem"
            android:icon="@drawable/new_camera"
            android:title="@string/title_create"/>

        <item
            android:id="@+id/dopeItem"
            android:icon="@drawable/star_icon"
            android:title="@string/tittle_dope"/>

        <item
            android:id="@+id/followersItem"
            android:icon="@drawable/doppes"
            android:title="@string/title_followers"/>

        <item
            android:id="@+id/callPeopleItem"
            android:icon="@drawable/call"
            android:title="@string/title_call_people"/>

        <item
            android:id="@+id/gifs"
            android:icon="@drawable/gf"
            android:title="GIFs"/>

        <item
            android:id="@+id/memes"
            android:icon="@drawable/memos"
            android:title="Memes"/>


        <item
            android:id="@+id/community"
            android:icon="@drawable/comunity"
            android:title="Community"/>


        <item
            android:id="@+id/findPeopleItem"
            android:icon="@drawable/search_new"
            android:title="@string/title_find_people"/>

        <item
            android:id="@+id/settingsItem"
            android:icon="@drawable/setting_icon"
            android:title="@string/settings"/>

        <item
            android:id="@+id/disclaimerItem"
            android:icon="@drawable/disclamer_icon"
            android:title="@string/title_disclaimer"/>

        <item
            android:id="@+id/logoutItem"
            android:icon="@drawable/logout_icon"
            android:title="@string/logout"/>

    </group>

答案 3 :(得分:0)

这对我有用

只需在 dimen.xml 文件

中添加这一行
 <dimen tools:override="true" name="design_navigation_icon_padding">10dp</dimen>

此行覆盖导航菜单项的填充。