简体   繁体   English

如何设置默认home Fragment

[英]How to set default home Fragment

I've navigation drawer menu with replace content frame, but I don't know how to set a default home fragment.我有带有替换内容框架的导航抽屉菜单,但我不知道如何设置默认的主页片段。

This is my code这是我的代码

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    menu = getResources().getStringArray(R.array.menu);
    dLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    dList = (ListView) findViewById(R.id.left_drawer);
    adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, menu);
    dList.setAdapter(adapter);
    dList.setSelector(R.color.pick);
    dList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View v, int position, long id) {
            dLayout.closeDrawers();
            Bundle args = new Bundle();
            args.putString("Menu", menu[position]);
            Fragment detail = null;
            FragmentManager FM = getFragmentManager();
            switch (position) {
                case 0:
                    detail = new HomeFragment();
                    break;
                case 1:
                    detail = new DataBase();
                    break;
                case 2:
                    detail = new MappingFragment();
                    break;
                case 3:
                    detail = new HelpFragment();
                    break;
                default:
                    break;
            }
            FM.beginTransaction().replace(R.id.content_frame, detail).commit();
        }
    });
}

I want set HomeFragment to default chosen/home page我想将 HomeFragment 设置为默认选择/主页

default:
    detail = new HomeFragment();
    break;

The default case is selected when no other cases apply没有其他情况适用时选择默认情况

Thanks for the answer, problem resolved.谢谢解答,问题已解决。

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    menu = getResources().getStringArray(R.array.menu);
    dLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    dList = (ListView) findViewById(R.id.left_drawer);
    adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, menu);

    Fragment home = new HomeFragment();
    FragmentManager FM = getFragmentManager();
    FM
        .beginTransaction()
        .replace(R.id.content_frame, home)
        .commit();

    dList.setAdapter(adapter);
    dList.setSelector(R.color.pick);
    dList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View v, int position, long id) {
            dLayout.closeDrawers();
            Bundle args = new Bundle();
            args.putString("Menu", menu[position]);
            Fragment detail = null;
            FragmentManager FM = getFragmentManager();
            switch (position) {
                case 0:
                    detail = new HomeFragment();
                    break;
                case 1:
                    detail = new DataBase();
                    break;
                case 2:
                    detail = new MappingFragment();
                    break;
                case 3:
                    detail = new HelpFragment();
                    break;
                default:
                    break;
            }
            FM.beginTransaction().replace(R.id.content_frame, detail).commit();
        }
    });
}

在 Main Activity 的 onCreate 方法中添加以下代码:

getFragmentManager().beginTrasaction().replace(r.id.frame_layout, new HomeFragment()).commit();

In the navigation drawer , a better solution would be to add the following code in your onCreate method:导航抽屉中,更好的解决方案是在onCreate方法中添加以下代码:

if (savedInstanceState == null) {
    getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
            new FRAGMENT_CLASS_NAME_HERE()).commit();
    navigationView.setCheckedItem(R.id.DRAWE_NAV_ITEM_ID_HERE);
}

This is much simpler than many other options and also selected the nav menu item.这比许多其他选项简单得多,并且还选择了导航菜单项。

Create a setDefaultFragment() method in onCreate() :onCreate()创建一个setDefaultFragment()方法:

private void setDefaultFragment() {
   getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new HomeFragment()).commit();
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM