Wie erweitert man die Navigationsliste in der Aktionsleiste?
-
12-11-2019 - |
Frage
In Android können Sie eine Navigationsliste in der Aktionsleiste festlegen, indem Sie den Spinner-Adapter und den OnNavigationListener übergeben.das Problem ist, dass die Navigationsliste den größten Teil der Aktionsleiste nicht ausfüllt. Wie kann sie wie die Google Mail-App erweitert werden :Beispiel für eine Google Mail-App :
Meine App:
Und hier ist der Code :
//... 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);
Ein anderes Problem, mit dem ich konfrontiert bin, ist die Größe des Spinner-Elements, sie werden sehr klein angezeigt, liegt das daran, dass ich keine angepasste Textansicht übergebe (siehe Screenshot)?beispiel für das, was ich tue :
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;
}
}
Lösung
Sie möchten das implementieren getDropDownView
methode auch.Auf diese Weise können Sie eine andere Ansicht für die Dropdown-Liste mit den gewünschten Metriken und Formatierungen bereitstellen.
Erwägen Sie, die Framework-Layouts aufzublasen android.R.layout.simple_spinner_item
und android.R.layout.simple_spinner_dropdown_item
für diese Situationen.Verwenden findViewById(android.R.id.text1)
um das zu bekommen TextView
sie sollten jeden ausfüllen.
Andere Tipps
Vielleicht können Sie ActionBar TAB-Navigation und fügen Sie die Registerkarten anstelle der Listen-Navigation Symbolen hinzu, da die Navigation von Google Mail-Navigation ähnlicher wie die Registerkarte-Navigation aussieht.