Я действительно новичок в Android Studio и борюсь с очень простой проблемой.Я видел несколько потоков по этой проблеме, но ни одна из них точно не решает мою проблему.
Проблема: Как я могу изменить фрагмент в шаблоне NavigationDrawer?Шаблон предоставляет среду, в которой так называемый content_main.xml должен быть заменен другим фрагментом.Я не знаю, как это сделать
Что я пытался: Поскольку я не смог изменить content_main.xml, я изменил весь xml, включая content_main.xml.Это проще понять, если вы просто посмотрите на мой код.
Шаблон app_bar_main.xml , который задает, как должны выглядеть фрагменты, и включает content_main.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
android:id="@+id/content_main_frame"
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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
tools:showIn="@layout/app_bar_main"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</FrameLayout>
В ящике навигации main_activity я изменяю свой фрагмент следующим образом:
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
Fragment newFragment;
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
if (id == ..) {
} else if (id == R.id.nav_emergencies) {
transaction.replace(R.id.content_main_frame, new Drawer_Emergencies());
transaction.addToBackStack(null);
transaction.commit();
}}
Как вы можете видеть, транзакция заменяет весь app_bar_main, но я думаю, что долженпросто измените content_main.xml, который включен в app_bar_main.xml.Как мне это сделать?
Когда я реализовал предложение от Иуды, я получил обновленный результат.Фрагмент находится в нужном месте, но каким-то образом content_main_frame.xml
(привет мир) все еще отображается.