您可以创建这样的操作栏,但它比膨胀菜单稍微复杂一些。在onCreateOptionsMenu()方法中创建的菜单将始终对齐到右侧,放置在拆分操作栏中或隐藏在菜单键下方。
如果您希望您的操作栏只包含两个菜单项 - 一个在左边,另一个在右边 - 您必须在操作栏中创建自定义视图。
自定义视图布局将是这样的:
android:layout_width="fill_parent"
android:layout_height="fill_parent">
android:background="?attr/actionBarItemBackground"
android:layout_width="?attr/actionBarSize"
android:layout_height="match_parent"
android:scaleType="centerInside"
android:id="@+id/item1"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"/>
android:background="?attr/actionBarItemBackground"
android:layout_width="?attr/actionBarSize"
android:layout_height="match_parent"
android:scaleType="centerInside"
android:id="@+id/item2"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"/>
定义中要使用的自定义视图的主题。主题应包括:
@style/MyActionBarStyle
@style/MyActionBarStyle
showCustom
showCustom
设置在活动(或片段)的自定义视图:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActionBar ab = getSherlock().getActionBar();
LayoutInflater li = LayoutInflater.from(this);
View customView = li.inflate(R.layout.my_custom_view, null);
ab.setCustomView(customView);
ImageButton ibItem1 = (ImageButton) customView.findViewById(R.id.item1);
ibItem1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// ...
}
});
ImageButton ibItem2 = (ImageButton) customView.findViewById(R.id.item2);
ibItem2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// ...
}
});
}