4

我正在使用ActionBar处理Android蜂窝。我已经按以下方式设置了ActionBar:如何在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. 更改所选项目的字体大小相匹配的话“经理室”
  2. 删除显示所选项目下方的灰线
  3. 删除下拉列表顶部的蓝线
  4. 将单选按钮添加到列表项目和检查在下拉列表中
  5. 更改分离列表项
  6. 线的颜色当前选定的项目

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

谢谢!

+0

你怎么把栏放在ActionBar的右边? – cheloncio 2014-01-30 22:32:27

回答

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

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

相关问题