我想在一行中创建带有Icon,Tabs和MenuButton的ActionBar
,但是通过使用下一个代码,我在PrintScreen上得到2行:
的java:
viewPager = (ViewPager) findViewById(R.id.pager);
bar = getSupportActionBar();
bar.setIcon(R.drawable.ic_map);
bar.setDisplayShowHomeEnabled(false);
bar.setDisplayShowTitleEnabled(false);
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
TabsAdapter tabsAdapter = new TabsAdapter(this, viewPager);
tabsAdapter.addTab(bar.newTab().setText("A"), ClientTemplates.class, null);
tabsAdapter.addTab(bar.newTab().setText("B"), ClientWalletsCards.class, null);
tabsAdapter.addTab(bar.newTab().setText("C"), ClientReports.class, null);
XML:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:paddingRight="1px"
android:paddingLeft="1px"/>
在我的代码中只需更改一行即可更改哪些内容?
答案 0 :(得分:2)
AFAIK,你无法控制这一点。 Android(或者,在这种情况下,ActionBarSherlock)会将操作栏选项卡定位在所需位置,甚至可以根据需要将它们从选项卡转换为下拉列表。
如果您使用android:uiOptions="splitActionBarWhenNarrow"
,则可以将溢出菜单按钮行放在屏幕底部。
答案 1 :(得分:0)
Actionbar CustomView是一种很好的方法来实现你想要的效果,自己制作一些标签,如:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="right">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RelativeLayout
android:id="@+id/tabone"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="@dimen/actionbar_margin">
<ImageView
android:contentDescription="@string/tabone_discription"
android:id="@+id/mainpage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/account_dark"
android:layout_centerInParent="true"
/>
</RelativeLayout>
<ImageView
android:contentDescription="@string/divider_discription"
android:id="@+id/divider1"
android:background="@drawable/list_divider_holo_light"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/divider_margin_top_bottom"
android:layout_marginBottom="@dimen/divider_margin_top_bottom"
android:layout_toRightOf="@id/tabone"
android:layout_marginLeft="@dimen/actionbar_margin"
android:layout_width="@dimen/divider_width"/>
<RelativeLayout
android:id="@+id/tabtwo"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_toRightOf="@id/divider1"
android:layout_marginLeft="@dimen/actionbar_margin">
<ImageView
android:contentDescription="@string/tabtwo_discription"
android:id="@+id/atpage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/at_dark"
android:layout_centerInParent="true"
/>
</RelativeLayout>
<ImageView
android:contentDescription="@string/divider_discription"
android:id="@+id/divider2"
android:background="@drawable/list_divider_holo_light"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/divider_margin_top_bottom"
android:layout_marginBottom="@dimen/divider_margin_top_bottom"
android:layout_marginLeft="@dimen/actionbar_margin"
android:layout_toRightOf="@id/tabtwo"
android:layout_width="@dimen/divider_width"/>
<RelativeLayout
android:id="@+id/tabthree"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_toRightOf="@id/divider2"
android:layout_marginLeft="@dimen/actionbar_margin">
<ImageView
android:contentDescription="@string/tabthree_discription"
android:id="@+id/replaypage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/comment_dark"
android:layout_centerInParent="true"
/>
</RelativeLayout>
<View
android:layout_height="0dp"
android:layout_width="0dp"
android:layout_toRightOf="@id/tabthree"
android:layout_marginLeft="12dp"/>
</RelativeLayout>
<ImageView
android:contentDescription="@string/actionbar_line"
android:layout_height="3dp"
android:layout_width="0dp"
android:id="@+id/actionbarline"
android:background="@drawable/ab_solid_custom_blue_inverse_holo"
/>
</RelativeLayout>
然后,在你的活动java文件中:
mActionBar.setDisplayShowCustomEnabled(true);
mActionBar.setCustomView(R.layout.ab_customview);
我没有使用标签,但结果看起来我在操作栏的同一行有三个标签:)