Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 带有Jetpack导航的工具栏中的BackButton不工作(对于第一个目标)_Android_Android Jetpack_Android Jetpack Navigation - Fatal编程技术网

Android 带有Jetpack导航的工具栏中的BackButton不工作(对于第一个目标)

Android 带有Jetpack导航的工具栏中的BackButton不工作(对于第一个目标),android,android-jetpack,android-jetpack-navigation,Android,Android Jetpack,Android Jetpack Navigation,在活动XML中,我有一个片段标记,如 <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.andro

在活动XML中,我有一个片段标记,如

<androidx.constraintlayout.widget.ConstraintLayout 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">

    <androidx.appcompat.widget.Toolbar
        android:id="@+id/toolbar"
        style="@style/VectorToolbarStyle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toTopOf="parent" />

    <fragment
        android:id="@+id/chat_nav_host_fragment"
        android:name="androidx.navigation.fragment.NavHostFragment"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:defaultNavHost="true"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/toolbar" />
</androidx.constraintlayout.widget.ConstraintLayout>
通过这样做,我可以看到带有工具栏的backbutton。但是,backbutton不起作用或应用程序未转到上一个活动。如果我导航到下一个片段,backbutton会起作用并将我带到上一个片段。它只在第一个片段中不起作用


任何帮助或建议都会非常好。谢谢。

我用这种方式按下后退按钮,也许它对你有用…:

在活动中:

//
//      Back button in Action Bar
//
@Override
public boolean onSupportNavigateUp(){
    finish();
    return true;
}
然后在onCreate方法中:

Toolbar toolbar = findViewById(R.id.toolbar);
toolbar.setTitle("Your title here");
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
当然,工具栏必须在xml文件中定义:

<androidx.appcompat.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/colorPrimary"
        android:minHeight="?attr/actionBarSize"
        android:theme="?attr/actionBarTheme"
        app:popupTheme="@style/ThemeOverlay.MaterialComponents.Light"
        app:theme="@style/ThemeOverlay.AppCompat.Dark" />


我希望我能帮助你

我找到了解决办法。这可能不是最好的答案。然而,它目前正在发挥作用

    toolbar.setNavigationOnClickListener {
        if(navController.graph.startDestination == navController.currentDestination?.id) {
            finish()
        } else {
            navController.navigateUp()
        }
    }

在第一个片段中,按“上一步”按钮上的“预计会发生什么?”返回上一个活动OK,那么您有多个活动,每个活动都有导航图?是的,有多个活动。我刚刚添加了一个导航图。它按预期工作,但当它显示第一个片段时,backbutton不工作。您可以为第一个片段定义pop操作以返回到所需的活动。谢谢您的回答。但我一直在寻找喷气背包导航的解决方案
    toolbar.setNavigationOnClickListener {
        if(navController.graph.startDestination == navController.currentDestination?.id) {
            finish()
        } else {
            navController.navigateUp()
        }
    }