Один из способов решить эту проблему - вы можете выделить элемент, вызвав следующий метод, чтобы определить, когда следует изменить видимость и позиционировать вид:
onNavigationItemSelected(navigationView.getMenu().getItem(0));
Поскольку вы упомянули, у вас уже есть формаи пользовательский стиль, поместите представление (здесь в этом коде ниже, selectedItemBottomView
) внутри NavigationView
in 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);
Надеюсь, это поможет.