Выбранный элемент панели задач Android, список субтитров и выпадающий список
Как я могу сделать spinner в панели действий для выбора другого элемента (отображается в верхней части панели действий), а затем в раскрывающемся списке?
Пример: почта google с spinner в панели действий:
![action_bar_pattern_spinner]()
- Как они достигли этой функциональности?
- Могу ли я изменить выбранный элемент в панели действий, не затрагивая один и тот же элемент в раскрывающемся списке?
- Как они изменили выбранный элемент в панели действий, чтобы иметь две строки и разные шрифты, но не повлияли на элемент в раскрывающемся списке?
- Можно ли это достичь, используя стандартную реализацию spinner панели действий в ICS и sherlock панели действий или мы должны попробовать с пользовательским представлением?
Любой исходный код, учебник или документ будут действительно полезны.
У меня уже есть привязка с адаптером в панели действий, и у меня есть список в выпадающем меню, но я никак не могу изменить элемент, не затрагивая элемент в выпадающем списке (потому что это одно и то же).
Ответы
Ответ 1
Чтобы иметь другое представление в строке счетчика действий, чем в списке счетчиков, вы можете использовать BaseAdapter или ArrayAdapter и переопределить некоторые методы:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// Return a view which appears in the action bar.
return yourCustomView..;
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
// Return a view which appears in the spinner list.
// Ignoring convertView to make things simpler, considering
// we have different types of views. If the list is long, think twice!
return super.getView(position, null, parent);
}
Ответ 2
возможно, слишком поздно, но учебник с комментариями можно найти на веб-сайте разработчика Android:
http://developer.android.com/guide/topics/ui/actionbar.html#Dropdown
основы в том, что во время действия OnCreate вы должны установить его как список:
getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
а затем создайте адаптер-обтекатель и пару обратных вызовов, как если бы вы сделали с обычным счетчиком.
надеюсь, что это поможет