导航抽屉项图标右侧

6

我是个初学者。我想知道如何在导航抽屉里面添加一个项目,该项目的图标将添加在项目标题右侧。

我想做的就像这张图片。

see this

但是怎么做呢? 我想要像YouTube项目一样添加项目。

这是导航抽屉菜单:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
      <item android:title="Social Links">
        <menu>
            <item
                android:id="@+id/nav_facebook"
                android:icon="@drawable/ic_menu_facebook"
                android:title="Facebook"
                />
            <item
                android:id="@+id/nav_youtube"
                android:icon="@drawable/ic_menu_youtube"
                android:title="Youtube"
                />
            <item
                android:id="@+id/nav_twitter"
                android:icon="@drawable/ic_menu_twitter"
                android:title="Twitter"
                />

        </menu>
    </item>

</menu>

我也在Manifest中添加了这段代码:
android:supportsRtl="true"

3
为什么不创建自定义视图而是创建菜单?使用 RecyclerView 并创建多个视图。 - Abdul Waheed
尝试创建自定义 ArrayAdapter,其中包含 TextView 和 ImageView。 - suraj shinde
可以,但是否则不可能吗? 请给我一个关于自定义视图的链接。 谢谢。 - SabbirTT
2个回答

19
在res布局文件夹下,创建名为menu_image.xml的布局。该布局用于在YouTube标签旁呈现图像。

menu_image.xml


menu_image.xml

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

    <LinearLayout
        android:layout_width="6dp"
        android:layout_height="6dp"
        android:background="@drawable/addyourimage"></LinearLayout>

</LinearLayout>

活动:

 navigationView.getMenu().getItem(5).setActionView(R.layout.menu_image);

更多参考资料


嗨,它正在显示,但我如何定义我的菜单项序列号?我在那里使用了组。 - SabbirTT
我不明白你在说什么...能再详细解释一下吗? - Gowthaman M
1
非常感谢,它正在运行。 我只是像我一样修改了你的代码。 看:NavigationView navigationView =(NavigationView)findViewById(R.id.nav_view); navigationView.setNavigationItemSelectedListener(this); // navigationView.getMenu()。getItem(2).setActionView(R.layout.nav_menu_layout); Menu menuNav = navigationView.getMenu(); MenuItem facebookItem = menuNav.findItem(R.id.nav_facebook); facebookItem.setActionView(R.layout.nav_menu_layout); - SabbirTT
我可以加你社交媒体好友吗? 拜托。 - SabbirTT
谢谢!它对我起作用了。 - Dnyaneshwar Panchal
1
如果它对你不起作用,尝试使用ImageView而不是LinearLayout来显示图像。;-) - Amos Chepchieng

-1

根据您的需求创建自定义布局

并将其用作NavigationView中的headerLayout

<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:fitsSystemWindows="true"
    app:headerLayout="@layout/nav_header_main"
    app:menu="@menu/...." />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接