Трябва да добавя падащ списък в лента с действия. Опитах много различни начини да направя това, но всеки демонстрира своя специфичен недостатък. Ето резултатите от 2 от опитите.
Горната част е спинер, добавен в лентата с действия посредством actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
. Не се използват стилове, освен за цялата тема на приложението, която е @style/Theme.Sherlock
. (Приложението трябва да изглежда еднакво на нови и стари устройства, така че се използва ActionBarSherlock.) Както можете да видите, този метод създава черен цвят на текста на тъмен/черен фон. Избраният елемент се "показва" в лентата с действия с черен шрифт върху черен фон. (По подразбиране бяха android.R.layout.simple_spinner_item
и android.R.layout.simple_spinner_dropdown_item
оформления, но опитах и персонализирани с препратки към различни налични стилове).
Например:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, test);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
actionBar.setListNavigationCallbacks(adapter, new ActionBar.OnNavigationListener()
...
Второто е меню. Изглежда добре по отношение на цветовете. Бих искал да има същия стил (цветове, размер на шрифта, подравняване) в спинера. Но не мога да получа това, след като си играх с много предложения, намерени в Интернет и особено в SO. Моля, обърнете внимание, че не искам да посочвам твърдо кодирани цветове в персонализирания си стил. Искам да ги наследя от съществуващи стилове (системни или холо теми на Шерлок). И родителските стилове трябва да са известни на API ниво 10. Както и да е, това Е приемливият стил за менюта. Трябва само да го преместя на центрофугата.
Подходът с менюто може да бъде заобиколно решение, но му липсва малкият триъгълник в долния десен ъгъл, което показва, че падащо меню ще бъде представено на потребителя. Знам, че идва от списъка със състояния на центрофуга, който може да бъде изтеглен, и мога да приложа същия фон към елементи от менюто. Но това засяга ВСИЧКИ елементи от менюто, докато трябва само да покажа триъгълника върху елементи с подменю.
Ще се радвам на решение и в двете посоки.
Context context = getSupportActionBar().getThemedContext();
вместоthis
. - person rciovati   schedule 08.04.2013R.layout.sherlock.
, го накарах да работи. Публикувайте отговора. - person Stan   schedule 08.04.2013