【发布时间】:2017-03-19 14:22:15
【问题描述】:
我正在创建我的第一个 android 应用程序。做完必要的功课后,我带来这里寻求帮助。
可以从导航抽屉中调用片段 A。如果我再次滑动导航栏并调用 Fragment A。它与之前调用的 Fragment A 重叠。问题是用户必须单击两次才能返回主屏幕。
我分享了一些截图和sn-p。
启动片段 A(Help_Fragment())
private void createHelp() {
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
Log.d(taglaunch, "Switching to Help Fragment");
Fragment fragment = new Help_Fragment();
fragmentTransaction.setCustomAnimations(R.animator.slide_in_left,
R.animator.slide_out_right, R.animator.exit_to_left, R.animator.exit_to_right);
fragmentTransaction.replace(R.id.app_bar, fragment).addToBackStack(null).commit();
}
创建
protected void onCreate(Bundle savedInstanceState) {
Log.d(taglaunch, "on Create - AppDrawer");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_appdrawer);
mainActivityAdapter = new MainActivityAdapter(getFragmentManager());
navigate();
switchtofragment();
getFragmentManager().addOnBackStackChangedListener(backStackListener);
}
public void switchtofragment() {
tabLayout = (TabLayout) findViewById(R.id.tab_layout);
tabLayout.addTab(tabLayout.newTab().setText("TAB1"));
tabLayout.addTab(tabLayout.newTab().setText("TAB2"));
viewPager = (ViewPager) findViewById(R.id.view_pager);
viewPager.setAdapter(mainActivityAdapter);
tabLayout.setOnTabSelectedListener(this);
tabLayout.setupWithViewPager(viewPager);
}
public void navigate() {
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
【问题讨论】:
-
有几种方法可以检查哪个是当前片段(显示),您可以在
createHelp()或其他“替换”片段的方法中进行此检查,如果当前显示的片段与那个片段的类型相同正在显示,只是return; -
我想你可以在这里找到答案:stackoverflow.com/a/38475373/3436343
-
@Yazan 感谢您的帮助:)
标签: android android-fragments navigation-drawer