创建后,工具栏会自动显示后退箭头

时间:2020-09-01 12:46:44

标签: java android navigation-drawer toolbar

我创建了一个MainActivity的{​​{1}}

XML文件

DrawerLayout

在此<?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" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/drawer_layout" android:fitsSystemWindows="true" xmlns:tools="http://schemas.android.com/tools"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <androidx.appcompat.widget.Toolbar android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@color/gray_95" android:id="@+id/toolbar" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" android:elevation="4dp"> <EditText android:layout_width="150dp" android:layout_height="wrap_content" android:hint="My toolbar" android:textColor="@color/white"></EditText> </androidx.appcompat.widget.Toolbar> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> // ALL MY MAIN ACTIVITY XML </RelativeLayout> </LinearLayout> <!-- Navigation View --> <com.google.android.material.navigation.NavigationView android:id="@+id/nav_view" android:layout_width="wrap_content" android:layout_height="match_parent" app:menu="@menu/drawer_menu" android:layout_gravity="start" android:background="@color/gray_95" app:itemTextColor="@color/white" app:itemIconTint="@color/white" app:headerLayout="@layout/drawer_menu_header"/> </androidx.drawerlayout.widget.DrawerLayout> 上,我创建了使Activity工作所需的基本代码,该代码在Drawer中被调用,并被onCreate(Bundle savedInstanceState)覆盖

JAVA

onNavigationItemSelected(@NonNull MenuItem item)

private void setDrawerLayout() { Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); getSupportActionBar().setDisplayShowTitleEnabled(false); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); NavigationView navigationView = findViewById(R.id.nav_view); navigationView.setNavigationItemSelectedListener(this); ActionBarDrawerToggle mToggle = new ActionBarDrawerToggle(this, mDrawerLayout , toolbar, R.string.open_drawer, R.string.close_drawer); mToggle.syncState(); getSupportActionBar().setDisplayHomeAsUpEnabled(true); mDrawerLayout.addDrawerListener(mToggle); } 有效,但是我正在处理一个错误。如上一个Navigation文件所示,我已经在XML下添加了整个Activity。我以为我做错的是,我应该创建一个Toolbar而不是活动,并将以下代码行添加到Fragment方法中:

onCreate

但是在此之前,我想确认是否是问题所在,因为这将使我花费大量时间(项目处于开发阶段,我需要进行大量更改)< / p>

我附上图片以显示当前的解决方案

enter image description here

如您所见,一旦启动应用程序,就会显示后退按钮。当我单击它时,它只是打开抽屉。可能会发生什么?我需要创建一个 getSupportFragmentManager().beginTransaction().replace(R.id.MYMAINFRAGMENT, new SettingFragment()).commit(); 吗?

1 个答案:

答案 0 :(得分:1)

删除此行:

   getSupportActionBar().setDisplayHomeAsUpEnabled(true);