gpt4 book ai didi

android - 如果该 fragment 已打开,如何防止从抽屉导航中打开该 fragment

转载 作者:行者123 更新时间:2023-11-30 00:57:28 24 4
gpt4 key购买 nike

如果 fragment 已经打开,如何防止从抽屉导航中打开 fragment ,当 fragment 打开并单击 NavigationDrawer 项目时, fragment 会再次重新创建,那么如何检查 fragment 是否已经打开?

 public boolean onNavigationItemSelected(MenuItem item) {
int id = item.getItemId();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);

if (id == R.id.fragmentA) {
{ FragmentA fragment = new FragmentA();
transaction.add(R.id.main_screen, fragment1, "MainFrag").addToBackStack(null);
}

} else if (id == R.id.fragmentB) {
FragmentB fragment = new FragmentB();
transaction.add(R.id.main_screen, fragment).addToBackStack(null);

} else if (id == R.id.fragmentC) {
FragmentC fragment = new FragmentC();
transaction.replace(R.id.main_screen, fragment).addToBackStack(null);

}

最佳答案

我是这样解决的:

public boolean onNavigationItemSelected(MenuItem item) {

int id = item.getItemId();

Fragment f = getSupportFragmentManager().findFragmentById(R.id.fragment_container);
if (id == R.id.n_1 && !(f instanceof MainFragment)) {
MainFragment fragment = new MainFragment();
android.support.v4.app.FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, fragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
} }

关于android - 如果该 fragment 已打开,如何防止从抽屉导航中打开该 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39933262/

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