【问题标题】:How do I style a dropdown list in an ActionBar in Honeycomb?如何在 Honeycomb 的 ActionBar 中设置下拉列表的样式?
【发布时间】:2012-03-28 17:21:10
【问题描述】:

我正在开发带有 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 示例,但我不知道如何应用它们以及如何设置下面指出的特定元素的样式。

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

  1. 更改所选项目的字体大小以匹配“房间管理员”一词的字体大小
  2. 删除显示的所选项目下方的灰线
  3. 删除下拉列表顶部的蓝线
  4. 向列表项添加单选按钮并检查下拉列表中当前选择的项
  5. 更改分隔列表项的线条颜色

有人对如何做到这一点有任何想法吗?

谢谢!

【问题讨论】:

  • 如何把bar放到ActionBar的右边?

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


【解决方案1】:

我发现了如何设置列表中的项目以及显示项目的样式。该解决方案涉及在 /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);

结果:

不幸的是,我不知道如何添加单选按钮,或如何删除任何水平线。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-19
    • 2012-03-01
    • 2012-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多