android - 如何从 fragment 中将微调器置于操作栏的中心

标签 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"
        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)Fragment 中,我这样做了:

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);
}

但是,微调器不在中心,知道吗? Spinner not in center

最佳答案

这是因为 ActionBar 中的第二个项目 actionMapMore 也占用了部分操作栏。您应该将菜单的第二项放在您的自定义布局中,并通过 LinearLayout 正确操作它。

关于android - 如何从 fragment 中将微调器置于操作栏的中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19273507/

相关文章:

java - 有没有更有效的方法来更新 ListView 或循环遍历字符串数组

java - 在 Android 中将 Stream 转换为 String 时出现 OutOfMemoryError

android - 在实现Spinner setOnItemSelectedListener之后,我的应用程序崩溃了

java - android设备ID混淆

android - Android 操作项上的通知徽章

android - 在 Android 2 中隐藏状态栏,但在 Android 3/4 中保留操作栏

android - AppCompat v7 :21 Split Action Bar Broken?

android - 我如何从 JSON 中获取国家和州并将其填充到 Spinner 上

Android - 微调器 : how may I distinguish user's actions from computer's actions in a OnItemSelectedListener

android - 如何在 Android 的不同应用程序中使用 Broadcast Receiver?