碎片和活动

时间:2015-07-13 07:23:01

标签: android android-fragments navigation-drawer

我在Android Studio中使用导航抽屉。当我在导航栏中选择一个项目时,我使用以下代码:

public void onNavigationDrawerItemSelected(int position) {
    switch(position)
        {
            case 0:
                Intent intent1 = new Intent(MainActivity.this,HomeActivity.class);
                startActivity(intent1);
                break;
            case 1:
                Intent intent2 = new Intent(MainActivity.this,DayActivity_1.class);
                startActivity(intent2);
                break;
        }
}

当我从导航抽屉项目中调用我的活动时,操作栏将消失,活动将全屏打开。如何管理导航抽屉不会消失?

3 个答案:

答案 0 :(得分:0)

如果要保留导航抽屉,则应更改内容片段,而不是显示活动。

在你的情况下,它会改变

Intent intent1 = new Intent(MainActivity.this,HomeActivity.class); startActivity(intent1);

使用:

FragmentManager fragmentManager = ...
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.replace(R.id.your_fragment_container_id, new HomeFragment())
transaction.commit();

答案 1 :(得分:0)

不要使用DayActivity_1.class活动使用片段而是当你点击导航项jst创建片段并将其替换为drawerlayout

答案 2 :(得分:0)

在主导航活动类中扩展FragmentActivity,如下所示。

public void setContent(Fragment fragment) {
        // Fragment fragment = new content_home();
        FragmentTransaction fragmentManager = getFragmentManager().beginTransaction();
        fragmentManager.setCustomAnimations(R.animator.enter_from_left, R.animator.exit_to_left);
       // fragmentManager.beginTransaction()
        fragmentManager.replace(R.id.mainContent, fragment).commit();

    }

public void onNavigationDrawerItemSelected(int position) {
    switch(position)
        {
            case 0:

                break;
            case 1:
                Intent intent2 = new Intent(MainActivity.this,DayActivity_1.class);
                startActivity(intent2);
                break;
        }
}

public void onNavigationDrawerItemSelected(int position) {
    switch(position)
        {
            case 0:
                 Fragment homeActivityFragment = new HomeActivityFragment();
                 //if you want to pass data to fragment
                  //Bundle bundle = new Bundle();
                  //bundle.putString("id", "" + item.get("id"));
                  //homeActivityFragment.setArguments(bundle);
                 setContent(homeActivityFragment)
                break;
            case 1:
                Fragment dayActivity_1Fragment = new DayActivity_1Fragment();
                setContent(dayActivity_1Fragment)
                break;
        }
}

现在使用以下代码解决您的问题

newModel