Actionbarsherlock navigation_mode_list列表没有出现

时间:2014-08-04 14:30:45

标签: android android-fragments

正如我的问题标题所示,我有一个SherlockFragmentActivity我正在使用NavigationMode:NAVIGATION_MODE_LIST

但是,在我将屏幕旋转到横向,然后出现之前,我看不到要在项目之间切换的列表。然后你可以旋转回肖像以显示它。

如何在不先旋转屏幕的情况下显示它。

这是我的活动oncreate:

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    SystemBarTintManager tintManager = new SystemBarTintManager(this);
            tintManager.setStatusBarTintEnabled(true);
            tintManager.setTintColor(Color.parseColor("#424254"));
            tintManager.setNavigationBarTintEnabled(true);
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);

            title = new String[] {"List 1"};
            subtitle = new String[]{"List 1 sub"};
            icon = new int[]{R.drawable.list_one};
            adapter = new NavListAdapter(this, title, subtitle, icon);
            getSupportActionBar().setDisplayShowTitleEnabled(false);
            getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

            ActionBar.OnNavigationListener navlistener = new OnNavigationListener() {

                @Override
                public boolean onNavigationItemSelected(int position, long itemId) {
                    FragmentTransaction ft = getSupportFragmentManager()
                            .beginTransaction();

                    switch (position) {
                    case 0:
                        ft.replace(android.R.id.content, frag1);
                        break;
                    case 1:
                        ft.replace(android.R.id.content, frag2);
                        break;
                    case 2:
                        ft.replace(android.R.id.content, frag3);
                        break;
                    }
                    ft.commit();
                    return true;
                }

            };
            getSupportActionBar().setListNavigationCallbacks(adapter, navlistener);
    }

1 个答案:

答案 0 :(得分:0)

解决方案是在navlistener之前添加以下代码行:

FragmentTransaction ft = getSupportFragmentManager()
                            .beginTransaction();
ft.replace(android.R.id.content, frag1);
ft.commit();