如何在Honeycomb的ActionBar中设置下拉列表的样式?

时间:2012-03-28 17:21:10

标签: android android-layout android-3.0-honeycomb android-xml android-actionbar

我正在使用ActionBar开发Android Honeycomb。我通过以下方式设置了ActionBar:

// Configures the action bar
private void configureActionBar() {
    mActionBar = getActionBar();
    mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

    SpinnerAdapter spinnerAdapter = ArrayAdapter.createFromResource(this, R.array.rooms, android.R.layout.simple_spinner_dropdown_item);

    ActionBar.OnNavigationListener navigationCallback = new ActionBar.OnNavigationListener() {
        public boolean onNavigationItemSelected(int itemPosition, long itemId) {
            String[] rooms = getResources().getStringArray(R.array.rooms);

            mAppState.setCurrentRoom(rooms[itemPosition]);

            return false;
        }
    };

    mActionBar.setListNavigationCallbacks(spinnerAdapter, navigationCallback);
}

下图显示了ActionBar的一部分屏幕截图。我想设置下拉列表的样式,但我不知道该怎么做。这个link有一些XML样本,但我不知道如何应用它们以及如何设置下面指出的特定元素的样式。

ActionBar Dropdown List for Styling

以下是我想要做出的更改列表:

  1. 更改所选项目的字体大小以匹配“Room Manager”字样
  2. 删除显示的所选项目下方的灰线
  3. 删除下拉列表顶部的蓝线
  4. 向列表项添加单选按钮,并检查下拉列表中当前选定的项目
  5. 更改分隔列表项的行的颜色
  6. 有没有人对如何做到这一点有任何想法?

    谢谢!

1 个答案:

答案 0 :(得分:3)

我找到了如何设置列表中的项目以及显示的项目的样式。解决方案涉及在/ res / layout目录中创建两个布局xml文件 - 一个用于微调器下拉项,另一个用于选择器(显示的项)。然后我就可以将视图资源添加到ArrayAdapter。

R.layout.spinner_dropdown_text_view:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/spinnerDropdownTextView"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:paddingLeft="10dp"
    android:gravity="center_vertical"
    android:textSize="18dp" />

R.layout.spinner_selector_text_view:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/spinnerSelectorTextView"
    android:layout_width="210dp"
    android:layout_height="match_parent"
    android:paddingTop="12dp"
    android:textSize="18dp"
    android:textColor="@android:color/black" />

ArrayAdapter代码:

ArrayAdapter<CharSequence> aa = ArrayAdapter.createFromResource(this, R.array.rooms, R.layout.spinner_selector_text_view);
aa.setDropDownViewResource(R.layout.spinner_dropdown_text_view);

结果:

The result

不幸的是,我无法弄清楚如何添加单选按钮,或者如何删除任何水平线。