操作栏下拉列表打开和关闭项目样式

时间:2013-04-05 02:10:54

标签: android android-actionbar

我正在尝试设置操作栏列表导航的样式,使其在关闭状态下具有白色文本。但是,当我这样做时,它已将全部文本变为白色,这与白色下拉列表无关。

有没有办法单独设计每个样式?文档不存在:(

screenshot

3 个答案:

答案 0 :(得分:1)

Adapter添加自定义布局。在这里我创建了一个布局,我添加了一个TextView。使用text colorbackground color

并设置atapter,如:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                getBaseContext(), R.layout.my_spinner_style, R.id.textView1,
                COUNTRIES);

这里

R.layout.my_spinner_style是我的自定义布局。

R.id.textView1是来自my_spinner_style.xml的textview ID。

您还可以在TextView中展示您的awn样式。检查thisthis istical。

检查此代码:

enter image description here

onCreate内:

/** Create an array adapter to populate dropdownlist */
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                getBaseContext(), R.layout.my_spinner_style, R.id.textView1,
                COUNTRIES);

        /** Enabling dropdown list navigation for the action bar */
        getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

        /** Defining Navigation listener */
        ActionBar.OnNavigationListener navigationListener = new OnNavigationListener() {

            @Override
            public boolean onNavigationItemSelected(int itemPosition,
                    long itemId) {
                Toast.makeText(getBaseContext(),
                        "You selected : " + COUNTRIES[itemPosition],
                        Toast.LENGTH_SHORT).show();
                return false;
            }
        };

        /**
         * Setting dropdown items and item navigation listener for the actionbar
         */
        getActionBar().setListNavigationCallbacks(adapter, navigationListener);

my_spinner_style.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#FFFF00" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Large Text"
        android:textAppearance="?android:attr/textAppearanceLarge" />

</LinearLayout>

答案 1 :(得分:0)

可能你可以通过编程方式完成它(虽然我从未尝试过):

  public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menuId, menu);

    menu.findItem(R.id.itemId).getActionView().setBackground(...)
  }

答案 2 :(得分:0)

如果您使用Adapter(必须按定义实现SpinnerAdapter),您有两个可以覆盖的回调。将为“已选择”项目调用getView。 {@ 1}}将调用下拉项。您可以在那里设置不同的文字颜色。