В настоящее время я работаю над приложением, в котором я хотел бы изменить нижнюю часть navigationView
, нажимая картинку в заголовке того же navigationView
.
My navigationView
это сборка с макетом заголовка и другой макет для нижней части. Заголовок содержит несколько фотографий. Предполагается, что каждая картинка приводит к разной компоновке для приведенной ниже части.
Я подготовил несколько разных меню, соответствующих разным категориям. Каждое меню объединено в свой макет с уникальным идентификатором.
На данный момент домашняя категория отображается при открытии navigationView
, и я не понимаю, как я должен перезагрузить нижнюю часть, нажаврис.
Это часть кода в mainActivity, в onCreate
//ACTIONBAR
Toolbar mToolbar = findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
assert getSupportActionBar() != null;
getSupportActionBar().setTitle("");
//NAVIGATION VIEW
DrawerLayout drawer = findViewById(R.id.drawer_layout);
NavigationView navigationView = findViewById(R.id.nav_view_home);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, mToolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();
navigationView.setNavigationItemSelectedListener(this);
Смотрите, там загружается идентификатор nav_view_home
и нажимаетсярис в этом заголовке navigationView, я хотел бы видеть изменение нижней части. На данный момент я подготовил другой навигационный вид, созданный с тем же заголовком: - nav_view_movie - nav_view_music - ...
Код макета ящика для дома
<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">
<include
layout="@layout/activity_soundsorganisation"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<android.support.design.widget.NavigationView
android:id="@+id/nav_view_home"
android:layout_width="250dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:theme="@style/NavigationTheme"
android:fitsSystemWindows="true"
android:background="#6b6b6b"
app:headerLayout="@layout/format_soundsorganisationdrawerheader"
app:menu="@menu/categorie_menu"
app:itemTextColor="@drawable/nav_view_item_textcolor"
app:itemBackground="@drawable/nav_view_item_background" >
<include layout="@layout/format_soundsorganisationdrawerheader" />
</android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>
Код раскладки ящика для фильма
<include
layout="@layout/activity_soundsorganisation"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<android.support.design.widget.NavigationView
android:id="@+id/nav_view_home"
android:layout_width="250dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:theme="@style/NavigationTheme"
android:fitsSystemWindows="true"
android:background="#6b6b6b"
app:headerLayout="@layout/format_soundsorganisationdrawerheader"
app:menu="@menu/categorie_menu"
app:itemTextColor="@drawable/nav_view_item_textcolor"
app:itemBackground="@drawable/nav_view_item_background" >
<include layout="@layout/format_soundsorganisationdrawerheader" />
</android.support.design.widget.NavigationView>
Код заголовка для навигации ViewView
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#303030"
android:gravity="center"
android:orientation="horizontal"
android:theme="@style/ThemeOverlay.AppCompat.Dark">
<ImageView
android:id="@+id/imageView_pic_movie"
android:layout_width="60dp"
android:layout_height="60dp"
android:contentDescription="@string/nav_header_desc"
android:paddingEnd="10dp"
android:paddingStart="10dp"
app:srcCompat="@drawable/pic_movie" />
<ImageView
android:id="@+id/imageView_pic_audio"
android:layout_width="60dp"
android:layout_height="60dp"
android:contentDescription="@string/nav_header_desc"
android:paddingEnd="10dp"
android:paddingStart="10dp"
app:srcCompat="@drawable/pic_audio" />
</LinearLayout>
Итак, как выВидите, макет дома состоит из заголовка и categorie_menu
. На данный момент я попытался перезагрузить весь макет при нажатии на рис. С идентификатором imageView_pic_movie
, используя другой макет из того же заголовка и другое меню с именем categorie_menu_movie
, но безуспешно.
Возможно, это невозможно,а может это тоже не самый лучший способ? Может быть, есть другой способ использовать тот же макет, но просто перезагрузить меню вместо всех макетов?
В любом случае, я не понимаю, как я должен это делать.
МожетВы мне поможете, пожалуйста?