如何在菜单项上画一条线

时间:2019-06-10 18:19:54

标签: java android xml android-menu

我想在活动的菜单项中放置一条绿线...已经必须创建形状和自定义样式,但没有成功...

enter image description here

我的 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:checkableBehavior="single">

        <item
            android:id="@+id/nav_ordem"
            android:checked="true"
            android:title="Home"/>

        <item
            android:id="@+id/nav_auto_infracao"
            android:title="Payment Profile" />
        <item
            android:id="@+id/nav_apreensao_deposito"
            android:title="Payment history" />
        <item
            android:id="@+id/nav_doacao"
            android:title="My card" />
        <item
            android:id="@+id/nav_sincronia"
            android:title="Frinds" />
    </group>

</menu>

2 个答案:

答案 0 :(得分:0)

尝试使用“查看”绘制线条。

<View
 android:layout_width="match_parent"
 android:layout_height="1dp"
 android:background="@android:color/black" />

答案 1 :(得分:0)

解决此问题的一种方法是,可以通过调用以下方法来突出显示项目,以检测何时更改可见性和放置视图:

onNavigationItemSelected(navigationView.getMenu().getItem(0));

由于您已经提到形状和自定义样式,因此将视图(在下面的代码中,selectedItemBottomView放在NavigationView中的activity_main或XML中像这样使用activity_main_drawer的布局文件:

activity_main

<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.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" />

    <com.google.android.material.navigation.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        app:menu="@menu/activity_main_drawer" >

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
                <View
                    android:id="@+id/selectedItemBottomView"
                    android:layout_width="match_parent"
                    android:layout_height="10dp"
                    android:background="@color/green" />
            </LinearLayout>
        </RelativeLayout>
    </com.google.android.material.navigation.NavigationView>

</androidx.drawerlayout.widget.DrawerLayout>

在选中后,根据您的要求更改可见性或位置:

selectedItemBottomView.setVisibility(View.VISIBLE);

希望这会有所帮助。