如何在导航抽屉活动中实现片段

时间:2017-02-08 06:14:49

标签: android android-fragments

我已经使用以下方法处理导航抽屉点击:

public boolean onNavigationItemSelected(MenuItem item) {
 int id = item.getItemId();
 if (id == R.id.nav_camera) {
 // desired fragment to load
}

我想要的是当我打开应用程序时,首先要检查用户是否已经登录,这可以使用共享首选项来完成。如果是,则打开应用程序正常工作的主页面。但是,如果他不是,那么我想显示Login Fragment Page。 我想通过仅使用导航抽屉活动创建项目时提供的活动来实现此目的。任何解决方案?
项目活动: 1.家庭活动是主要活动。 2.内部活动,仅在用户点击导航抽屉列表时管理碎片。

2 个答案:

答案 0 :(得分:0)

这样做:

Fragment fragment = null;
if(userIsLoggedIn(){  //Check from SharedPreference
      fragment = new MainFragment();
 } else {
      fragment = new LoginFragment();
 }

 FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
            fragmentTransaction.replace(R.id.container, fragment, CURRENT_TAG);
            fragmentTransaction.commitAllowingStateLoss();

答案 1 :(得分:0)

试试这个,

@Override
public boolean onNavigationItemSelected(MenuItem item) {
    // Handle navigation view item clicks here.
    int id = item.getItemId();

    Fragment fragment = null;

    switch (id) {
        case R.id.nav_camera:
            fragment = new CameraFragment();
            break;

        default:
            break;
    }

    if (fragment != null) {
        FragmentManager fragmentManager = getSupportFragmentManager();
        fragmentManager.beginTransaction().replace(R.id.main, fragment).commit();
        assert drawer != null;
        drawer.closeDrawer(GravityCompat.START);
    }
    return true;
}