Android 如何从片段将微调器居中放置在actionbar中
那么,如何从fragment在actionbar的中心添加微调器呢 我已经这样做了: ActionBar菜单文件:R.menu.tabmapAndroid 如何从片段将微调器居中放置在actionbar中,android,android-actionbar,spinner,android-ui,Android,Android Actionbar,Spinner,Android Ui,那么,如何从fragment在actionbar的中心添加微调器呢 我已经这样做了: 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"
<?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>
但是,旋转器不在中心,知道吗?
这是因为操作栏中的第二项,即actionMapMore,也会占用部分操作栏。您应该将菜单的第二项放在自定义布局中,并通过
LinearLayout
对其进行正确操作。一种方法是为ActionBar实现自定义视图。您可以使用自定义视图显示几乎任何内容,而不仅仅是微调器。缺点是您需要自己处理ActionBar中的添加/删除菜单项
如果你有更好的解决办法,我很想听听
<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>
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);
}