首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >导航抽屉默认片段

导航抽屉默认片段
EN

Stack Overflow用户
提问于 2014-03-10 17:37:14
回答 7查看 44.9K关注 0票数 22

我是一个新手开发者,我正在我的应用程序中集成导航抽屉与安卓支持v7,我有一个问题。当我启动应用程序时,主布局是这样的:

这是我的主要活动:

代码语言:javascript
复制
drawerList.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView parent, View view,
                int position, long id) {

            Fragment fragment = null;

            switch (position) {
                case 0:
                    fragment = new Fragment1();
                    break;
                case 1:
                    fragment = new Fragment2();
                    break;
                case 2:
                    fragment = new Fragment3();
                    break;  
                case 3:
                    fragment = new Fragment4();
                    break;
            }

            FragmentManager fragmentManager = 
                    getSupportFragmentManager();

            fragmentManager.beginTransaction()
                    .replace(R.id.content_frame, fragment)
                    .commit();

            drawerList.setItemChecked(position, true);

            tituloSeccion = opcionesMenu[position];
            getSupportActionBar().setTitle(tituloSeccion);

            drawerLayout.closeDrawer(drawerList);
        }
    });

如何设置默认片段,如应用程序的主布局?谢谢你

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2014-03-10 17:49:46

如果您可以在每次创建活动时加载默认片段,则可以将FragmentTransaction在onCreate()如下所示:

代码语言:javascript
复制
@Override
public void onCreate(Bundle savedInstanceState){

    super.onCreate(savedInstanceState);
    FragmentTransaction tx = getSupportFragmentManager().beginTransaction();
    tx.replace(R.id.content_frame, new Fragment1());
    tx.commit();


}

如果您想要一种更复杂的方法(例如,当您返回到主活动时切换到不同的片段),您可以使用Intent中的片段由临时演员确定onCreate(),您只需将默认片段放在defaultValue加载额外数据时:

代码语言:javascript
复制
int position = getIntent().getIntExtra("position", 1);
switch(position){

    ...

}
票数 55
EN

Stack Overflow用户

发布于 2014-07-10 17:33:40

将其放在Main Activity中onCreate()的末尾。

代码语言:javascript
复制
if (savedInstanceState == null) {
        selectItem(0);
 }
票数 19
EN

Stack Overflow用户

发布于 2014-03-10 17:50:28

您不能在XML中做到这一点,如果您的意思是这样的话。您可以在活动的onCreate中执行此操作。例如:

代码语言:javascript
复制
if (getFragmentManager().findFragmentById(R.id.content_frame) == null) {
  selectItem(0);
}

其中,selectItem是用来在抽屉中选择片段的方法,如谷歌的示例所示https://developer.android.com/training/implementing-navigation/nav-drawer.html,0是默认片段的位置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22296531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档