那么,如何在片段的动作栏中心添加一个微调器?
我已经这样做了:
ActionBar菜单文件:R.menu.tabmap
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_map_spinner"
android:showAsAction="always"
android:actionLayout="@layout/actionbar_spinner">
</item>
<item
android:id="@+id/action_map_more"
android:orderInCategory="100"
android:showAsAction="always|withText"
android:icon="@drawable/ic_setting"
android:title="@string/action_map_more"/>
</menu>
ActionBar微调文件:R.layout.actionbar_spinner
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center|top"
android:gravity="center"
android:orientation="vertical" >
<Spinner
android:id="@+id/actionbar_spinner_change_map"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center" />
</LinearLayout>
在(Sherlock)片段中,我这样做了:
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater){
inflater.inflate(R.menu.tabmap, menu);
Spinner spinner = (Spinner) menu.findItem(R.id.action_map_spinner).getActionView()
.findViewById(R.id.actionbar_spinner_change_map);
spinner.setAdapter(mSpinnerAdapter);
super.onCreateOptionsMenu(menu, inflater);
}
然而,旋转器不在中心,任何想法?
答案 0 :(得分:0)
这是因为ActionBar中的第二个项目actionMapMore也会占用操作栏的一部分。您应该将菜单的第二项放在自定义布局中,并通过LinearLayout
正确操作。
答案 1 :(得分:0)
您可以这样做的一种方法是为ActionBar实现自定义视图。您可以使用自定义视图显示几乎任何内容,而不仅仅是微调器。缺点是您需要自己处理ActionBar中的添加/删除菜单项。
如果你有更好的解决方案,我很乐意听到。