Я нашел этот вопрос (Android 2.2 Spinner looks old in Actionbar), и я попробовал, но он не работает для меня! Я хочу создать Spinner в моей панели действий Sherlock, но он выглядит старым в более низких версиях Android. Это мой код:Шерлок actionbar spinner выглядит «старым» в более низких версиях Android
OnCreate:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list);
getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
}
Oncreateoptionsmenu:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater mi = getSupportMenuInflater();
mi.inflate(R.menu.list, menu);
final Spinner spinner = new Spinner(getSupportActionBar()
.getThemedContext());
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getSupportActionBar().getThemedContext(),
R.layout.sherlock_spinner_item, new String[]{"Level 1", "Level 2", "Level 3"});
adapter.setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// clicked
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
menu.add("Level").setActionView(spinner)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
return true;
}
«Использовать собственный IcsSpinner ActionBarSherlock непосредственно, несмотря на риски, или« => какие риски? –
@BartWesselink: Как я писал, 'IcsSpinner' не является частью общедоступного API ActionBarSherlock, о чем свидетельствует' internal' как часть его имени пакета. Джейк мог перенести его в новый пакет или переименовать его, полностью избавиться от него, изменить поддерживаемые атрибуты, изменить общедоступный Java API или иным образом связать с ним. Такие изменения полностью соответствуют его правам, так как «IcsSpinner» - это реализация, а не интерфейс. Тем не менее, эти изменения могут сильно нарушить * you * (и все остальные, непосредственно используя 'IcsSpinner'). – CommonsWare
Спасибо за ответы, это мне очень помогает! –