使用导航抽屉活动时不显示菜单图标

时间:2018-04-19 10:29:38

标签: android

请查看以下xml文件。我为每个菜单都使用了图标。在我的代码中,图标显示在左侧(代码中没有问题)。但是当我运行代码时,我的输出并没有显示图标。它在图标区域中显示一个灰色方框。请帮忙:

activity_main_drawer.xml:

<menu>
    <item
        android:id="@+id/nav_1"
        android:icon="@mipmap/ic_launcher"
        android:title="@string/settings_label" />
    <item
        android:id="@+id/nav_2"
        android:icon="@mipmap/ic_launcher_wp"
        android:title="@string/remote_label" />
    <item
        android:id="@+id/nav_3"
        android:icon="@mipmap/ic_launcher_twitter"
        android:title="@string/interactive_label" />
    <item
        android:id="@+id/nav_4"
        android:icon="@mipmap/ic_launcher_gplus"
        android:title="@string/credits_label" />
</menu>

4 个答案:

答案 0 :(得分:0)

使用以下给定代码更新您的布局

+

答案 1 :(得分:0)

还有另一种简单的方法来显示标题上的菜单图标列表。 检查以下代码。

对于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/activity_home_drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/theme_background_color"
    android:fitsSystemWindows="true">


    <RelativeLayout
        android:id="@+id/activity_home"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <RelativeLayout
            android:id="@+id/activity_home_layout_container"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@+id/activity_home_layout_header" />

        <RelativeLayout
            android:id="@+id/activity_home_layout_header"
            android:layout_width="match_parent"
            android:layout_height="@dimen/action_bar_size"
            android:background="@color/white">

            <FrameLayout
                android:id="@+id/activity_home_frame_drawer_icon"
                style="@android:style/Widget.ActionButton"
                android:layout_width="40dp"
                android:layout_height="@dimen/action_bar_size"
                android:layout_marginStart="5dp"
                android:clickable="true"
                android:clipToPadding="false"
                android:focusable="true"
                android:padding="0dp">

                <Imageview
                    android:layout_width="24dp"
                    android:layout_height="24dp"
                    android:layout_gravity="center"
                    android:background="@drawable/icon_slider"
                    app:iconViewColor="@color/bw_a" />

            </FrameLayout>

            <TextView
                android:id="@+id/activity_home_text_header_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:fontFamily="@font/poppins_medium"
                android:text="Flourish"
                android:textColor="@color/black"
                android:textSize="@dimen/text_size_default"
                android:visibility="visible"
                tools:ignore="HardcodedText" />

            <android.support.v7.widget.RecyclerView
             android:id="@+id/activity_home_recycle_view_menu_action_button_list"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_alignParentEnd="true"
                android:layout_marginEnd="5dp" />


        </RelativeLayout>

        <View
            android:layout_width="match_parent"
            android:layout_height="4dp"
            android:layout_below="@+id/activity_home_layout_header"
            android:alpha="0.50"
            android:background="@drawable/shadow_from_top" />

    </RelativeLayout>

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

然后将所有数据添加到列表中,像正常列表视图一样设置适配器所有方法。

你完成了工作。

希望它有所帮助。

答案 2 :(得分:0)

在导航视图中,执行此操作 -

<?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"
    tools:openDrawer="start">

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

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

然后在onCreate方法中初始化组件

drawer = (DrawerLayout)findViewById(R.id.drawer_layout)

    toggle = ActionBarDrawerToggle(this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close)
    drawer.addDrawerListener(toggle)
    supportActionBar?.setDisplayHomeAsUpEnabled(true)
    supportActionBar?.setHomeButtonEnabled(true)

答案 3 :(得分:0)

activity_main_drawer.xml 应位于menu文件夹下,并设置此菜单及其应使用Navigationvue的图标。

与文档相关:您必须设置:

<android.support.v4.widget.DrawerLayout 
 xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res-auto"
 android:id="@+id/drawer_layout"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:fitsSystemWindows="true">

 <!-- Your contents -->

 <android.support.design.widget.NavigationView
     android:id="@+id/navigation"
     android:layout_width="wrap_content"
     android:layout_height="match_parent"
     android:layout_gravity="start"
     app:menu="@menu/activity_main_drawer" />
 </android.support.v4.widget.DrawerLayout>