0

在此处输入图像描述

由于我的应用程序名称长(和其他因素),我现在拥有的 4 个选项卡已折叠。这发生在使用大布局的设备上。在纵向模式下,它看起来像上图。但是,在横向模式下,名称和 4 个选项卡有足够的空间。

我已经尝试删除标题,但选项卡仍然折叠。如何使它始终显示选项卡,如果没有空间,让它隐藏应用程序名称。我宁愿没有省略号(App Name Go ...)。我宁愿完全隐藏标题。我需要这个专门用于纵向模式下的大型布局。

任何帮助,将不胜感激。

4

3 回答 3

0

为避免这种情况,请先在设置导航模式后添加选项卡。像这样,

    ActionBar bar = getSupportActionBar();
//dont set navigation mode now.
bar.setLogo(logo);
bar.setHomeButtonEnabled(false);
bar.setDisplayHomeAsUpEnabled(true);
bar.setDisplayShowTitleEnabled(false);

// Now add tabs
    ActionBar.Tab tab1 = bar.newTab();
    ActionBar.Tab tab2 = bar.newTab();
    ActionBar.Tab tab3 = bar.newTab();
    tab1.setText("Packages");
    tab1.setIcon(R.drawable.abs__ic_menu_share_holo_dark);
    tab2.setText("Blogs");
    tab2.setIcon(R.drawable.abs__ic_voice_search);
    tab3.setText("Gallery");
    tab3.setIcon(R.drawable.abs__ic_cab_done_holo_dark);

    tab1.setTabListener(new MyTabListener());
    tab2.setTabListener(new MyTabListener());
    tab3.setTabListener(new MyTabListener());
    bar.addTab(tab1);
    bar.addTab(tab2);
    bar.addTab(tab3);

// 现在设置导航模式

bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
于 2013-05-24T04:08:58.950 回答
0

当可用区域较少时,默认情况下操作栏将折叠选项卡。在纵向视图中,它会在操作栏下方创建另一个选项卡面板。您也可以在横向模式下强制执行此行为:

 try {
        Class c = Class.forName("com.android.internal.app.ActionBarImpl");
        Method m = c.getDeclaredMethod("setHasEmbeddedTabs",boolean.class);
        m.setAccessible(true);
        m.invoke(getActionBar(),false); //-- do not embed tabs --
    }catch (Exception e) {
        e.printStackTrace();
    }

注意:这是一个反射黑客,底层私有类可以在未来的版本中改变。

于 2013-05-24T05:01:14.457 回答
0

您无法控制操作栏选项卡何时折叠。这取决于安卓。我提出了一个关于这个的问题,但被拒绝了。

如果您绝对不能拥有折叠的 UI,请切换到ViewPagerViewPagerIndicatorPagerTabStrip中的选项卡指示器或任何其他ViewPager选项卡实现。

于 2013-05-24T04:23:03.653 回答