Как мне оформить выпадающий список в ActionBar в Honeycomb? - PullRequest
4 голосов
/ 28 марта 2012

Я работаю над Android Honeycomb с ActionBar.Я настроил 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.Я хотел бы стилизовать выпадающий список, но не уверен, как это сделать.Эта ссылка содержит несколько примеров XML, но я не знаю, как их применять и как стилизовать конкретные элементы, указанные ниже.

ActionBar Dropdown List for Styling

Вот список изменений, которые я хотел бы сделать:

  1. Измените размер шрифта выбранного элемента, чтобы он соответствовал слову "Менеджер комнаты"
  2. Удалите серую линию, лежащую подотображаемый выбранный элемент
  3. Удалите синюю строку в верхней части раскрывающегося списка
  4. Добавьте переключатели к элементам списка и проверьте текущий выбранный элемент в раскрывающемся списке
  5. Изменить цвет линий, разделяющих элементы списка

У кого-нибудь есть идеи, как это сделать?

Спасибо!

1 Ответ

3 голосов
/ 06 июня 2012

Я узнал, как оформить элементы в списке, а также отображаемый элемент. Решение заключалось в создании двух XML-файлов макета в каталоге / res / layout - один для выпадающих элементов счетчика и один для селектора (отображаемый элемент). После этого я смог добавить ресурсы представления в 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

К сожалению, я не смог выяснить, как добавить переключатели или как удалить какие-либо горизонтальные линии.

...