Come espandere la lista di navigazione in Azione Bar?
-
12-11-2019 - |
Domanda
In Android è possibile impostare un elenco di navigazione in Azione Barrando l'adattatore di spinner e onnavigationListener.Il problema è che l'elenco di navigazione non riempie la maggior parte della barra delle azioni, come farlo espandersi come l'app Gmail: Esempio di app Gmail:
La mia app:
Ed Ecco il codice:
//... setting the array adapter
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
NavigationListener navigationListener = new NavigationListener();
ListAdapter listAdapter = new ListAdapter();
actionBar.setListNavigationCallbacks(listAdapter, navigationListener);
actionBar.setDisplayShowTitleEnabled(false);
.
Altri problemi che affronto è la dimensione dell'articolo dello spinner, si presentano davvero piccole, è così perché non passerò su misura TextView (guarda lo screenshot)?Esempio di quello che faccio:
private class ListAdapter extends BaseAdapter implements SpinnerAdapter {
public View getView(int pos, View view, ViewGroup viewGroup) {
TextView text = new TextView(context);
text.setText(arrayAdapter.getItem(pos).toString());
return text;
}
}
. Soluzione
Si desidera implementare getDropDownView
anche il metodo.Ciò consente di fornire una visione diversa per l'elenco a discesa con le metriche e la formattazione desiderata.
Considerare il gonfiaggio dei layout quadro android.R.layout.simple_spinner_item
e android.R.layout.simple_spinner_dropdown_item
per queste situazioni.Utilizzare findViewById(android.R.id.text1)
per ottenere il TextView
che si dovrebbe compilare in ciascuno.
Altri suggerimenti
Forse è possibile utilizzare ActionBar Tab Navigation e aggiungi icone alle schede anziché alla navigazione dell'elenco poiché la navigazione di Gmail sembra più simile alla navigazione delle schede.