gpt4 book ai didi

android - 将工具栏主页按钮用于 popBackStack

转载 作者:行者123 更新时间:2023-11-30 01:25:45 26 4
gpt4 key购买 nike

应用有 Viewpager,它有 四个标签 fragment 。第二个 fragment 具有框架布局“FL”,我将 fragment 与 ListView 放在一起。当用户单击 ListView 项目时,在此框架布局“FL”中使用 ListView 打开新 fragment ,依此类推。

我将使用具有多级类别的 prudacts 做目录

我的问题:当我打开第 3 级 fragment 时,我如何在第二个 fragment 中实现它,而不是通过单击工具栏主页按钮返回 fragment 级别 2 和另一个单击返回 fragment 级别 1 (popBackStack),最后当单击工具栏主页按钮时转到第一个选项卡 。任何帮助对我有用。谢谢

catalog

这是我的收获:

我使用主页按钮从其他选项卡转到第一个选项卡:

 toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MainActivity.this.setCurrentItem(0, true);

}
});

最佳答案

使用下面的代码替换 fragment

 @Override
public void replaceFragment(Fragment fragment, String title) {
String backStateName = fragment.getClass().getName();
FragmentManager manager = getSupportFragmentManager();
boolean fragmentPopped = manager.popBackStackImmediate(backStateName, 0);
if (!fragmentPopped) { //fragment not in back stack, create it.
FragmentTransaction ft = manager.beginTransaction();
ft.replace(R.id.container_body, fragment);
ft.addToBackStack(backStateName);
ft.commit();
// getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().setTitle("");
}
}

在 fragment 类中添加下面提到的代码

在您的 Fragment onCreateView 中添加以下行

 setHasOptionsMenu(true);

使用下面的代码返回上一个 fragment 。

 @Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
if (getActivity().getSupportFragmentManager().getBackStackEntryCount() > 1) {
getFragmentManager().popBackStack();
return true;
}
return true;
default:
return super.onOptionsItemSelected(item);
}
}

@Override
public void onDetach() {
super.onDetach();
if (getActivity().getSupportFragmentManager().getBackStackEntryCount() > 1) {
getFragmentManager().popBackStack();
}
}

关于android - 将工具栏主页按钮用于 popBackStack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36442677/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com