4

我正在为一个通过 wifi/蓝牙远程控制另一个设备的应用程序做一个 android 4+ 布局。而且我正在尝试尽可能地使用操作栏。

在这个应用程序的情况下,我想要一个选择器来选择远程设备的基本系统操作模式。在它的右边,我想要一个“编辑设置”按钮。所以用户既可以选择一种操作模式,也可以编辑选择的操作模式。我想要选择器旁边的编辑按钮,因为将它们分组是有意义的。这两个操作显示了人们通常会在应用程序中使用的大多数功能。

我正在使用android活动的默认示例代码,正如向导“new>other>android activity”在我的项目中插入的那样,它有一个选择器已经设置并工作。

问题是,选择器被放置在操作栏的最左侧,而所有其他操作项都从右侧开始并移动到左侧。我似乎无法将“编辑”操作项的位置立即锁定在插入的选择器的右侧。

菜单 XML 中的项目如下所示:

<item android:id="@+id/edit_configuration"
    android:title="Edit"
    android:orderInCategory="2"
    android:layout_gravity="left"
    android:showAsAction="always" />
<item android:id="@+id/menu_settings"
    android:title="@string/menu_settings"
    android:orderInCategory="100"
    android:showAsAction="never" />

需要使用活动类的 onCreate 中的代码插入选择器。

    // Set up the action bar.
    final ActionBar actionBar = getActionBar();
    actionBar.setDisplayShowTitleEnabled(false);
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

    // Set up the dropdown list navigation in the action bar.
    actionBar.setListNavigationCallbacks(
            // Specify a SpinnerAdapter to populate the dropdown list.
            new ArrayAdapter(
                    actionBar.getThemedContext(),
                    android.R.layout.simple_list_item_1,
                    android.R.id.text1,
                    new String[]{
                            getString(R.string.title_section1),
                            getString(R.string.title_section2),
                            getString(R.string.title_section3),
                    }),
            this);

我已经在菜单 XML 中尝试了标准 layoutGravity 属性,但是虽然它不会导致错误,但它也没有做任何我能看到的事情。

截屏

如果有人知道如何将我的编辑按钮附加到我的选择器的右侧,我会很高兴听到它是如何完成的。

4

2 回答 2

2

系统控制操作项的位置,以在所有应用程序中提供通用的外观和感觉;换句话说,没有办法实现这一点(除非其他人不知道)。您也许可以扩展操作栏,或者以某种方式重写它以允许重新定位操作项,但这超出了我的技能。

于 2012-08-28T01:24:29.483 回答
0

从 oncreateoptionsmenu 中的两个菜单 xml 文件膨胀。最后膨胀的文件将在最右边的位置。

     public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
     inflater.inflate(R.menu.menu_one, menu);
     inflater.inflate(R.menu.menu_two, menu);

menu_two 的项目将位于最右侧。

于 2013-06-07T15:20:12.037 回答