当我按下后退按钮时,片段标题保留在之前的片段标题上

问题描述 投票:0回答:0

通过关注 thisthis MO 帖子,我尝试将我的 android 项目的应用栏标题设置如下:

主要活动

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_activity);
        setSupportActionBar(findViewById(R.id.toolbar));

        navController = Navigation.findNavController(this, R.id.navHostFragment);
        navController.addOnDestinationChangedListener((controller, destination, args) -> {
            // Check if it's a root destination
            NavGraph destinationGraph = destination.getParent();
            boolean isRootDestination = destinationGraph != null &&
                    destinationGraph.getStartDestinationId() == destination.getId();
            // Update back button accordingly
            Objects.requireNonNull(getSupportActionBar())
                    .setDisplayHomeAsUpEnabled(!isRootDestination);

            // Update activity title
            setTitle(destination.getLabel());
        });
    }

fragments_Graph.xml

<fragment
    android:id="@+id/fragmentA"
     ...
    android:label="Fragment A"
    ... >
    <action
        android:id="@+id/action_fragmentA_to_fragmentB"
        app:destination="@id/fragmentB"
        app:launchSingleTop="true" />
</fragment>
<fragment
    android:id="@+id/fragmentB"
    ...>
    <action
        android:id="@+id/action_fragmentB_to_fragmentA"
        app:destination="@id/fragmentA"
        app:launchSingleTop="true" />
</fragment>

onCreate
Fragment B
内部我用过:

requireActivity().setTitle("some title");

向前方向一切正常,但是当我按下片段 B 中的后退箭头时,片段 A 的标题变成“某个标题”!!有什么问题??

当我在片段 A 之前添加另一个具有预定义标题的片段(在 graph.xml 中,即 android:label="Fragment New")时,在片段 A 和新片段之间上下导航工作正常,AppBar 标题显示指定的内容。

java android android-jetpack android-jetpack-navigation navcontroller
© www.soinside.com 2019 - 2024. All rights reserved.