gpt4 book ai didi

android - 带有 fragment 的操作栏向上导航

转载 作者:IT老高 更新时间:2023-10-28 13:09:03 27 4
gpt4 key购买 nike

我有一个选项卡式操作栏/viewpager 布局,其中包含三个选项卡,分别是 ABC。在标签 C 标签( fragment )中,我正在添加另一个 fragment ,例如 fragment D。与

 DFragment f= new DFragment();
ft.add(android.R.id.content, f, "");
ft.remove(CFragment.this);
ft.addToBackStack(null);
ft.commit();

我在 DFragment 的 onResume 中修改 actionbar 以添加按钮:

ActionBar ab = getActivity().getActionBar();
ab.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
ab.setDisplayHomeAsUpEnabled(true);
ab.setDisplayShowHomeEnabled(true);

现在在 DFragment 中,当我按下硬件(电话)后退按钮时,我会返回到选择 CFragment 的原始选项卡式(ABC)布局。如何使用操作栏向上按钮实现此功能?

最佳答案

实现 OnBackStackChangedListener 并将此代码添加到您的 Fragment Activity。

@Override
public void onCreate(Bundle savedInstanceState) {
//Listen for changes in the back stack
getSupportFragmentManager().addOnBackStackChangedListener(this);
//Handle when activity is recreated like on orientation Change
shouldDisplayHomeUp();
}

@Override
public void onBackStackChanged() {
shouldDisplayHomeUp();
}

public void shouldDisplayHomeUp(){
//Enable Up button only if there are entries in the back stack
boolean canGoBack = getSupportFragmentManager().getBackStackEntryCount()>0;
getSupportActionBar().setDisplayHomeAsUpEnabled(canGoBack);
}

@Override
public boolean onSupportNavigateUp() {
//This method is called when the up button is pressed. Just the pop back stack.
getSupportFragmentManager().popBackStack();
return true;
}

关于android - 带有 fragment 的操作栏向上导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13086840/

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