У меня есть spinner (sherlock), помещенный в панель действий, который отображает 5 вариантов выбора пользователя, как показано ниже. до сих пор все в порядке. Но я хотел, чтобы счетчик был правильно выровнен на панели действий. Также элементы счетчика должны быть выровнены по центру. Любая идея, как это можно сделать?Android - список навигации стиль
1
A
ответ
1
Вы должны создать свой собственный адаптер вращателя.
Вы можете получить все, что вы хотите, вот пример:
Вот код, чтобы использовать пользовательский кок:
Context context = getSupportActionBar().getThemedContext();
ArrayList<AbMenu> data = new ArrayList<AbMenu>();
data.add(new AbMenu(isDark ? R.drawable.ic_action_spinner_partiemultidark : R.drawable.ic_action_spinner_partiemulti, getString(R.string.m1), 1));
data.add(new AbMenu(isDark ? R.drawable.ic_action_spinner_partiemultidark : R.drawable.ic_action_spinner_partiemulti, getString(R.string.m8), 2));
data.add(new AbMenu(isDark ? R.drawable.ic_action_spinner_partiedark : R.drawable.ic_action_spinner_partie, getString(R.string.s31), 5));
data.add(new AbMenu(isDark ? R.drawable.ic_action_spinner_savedark : R.drawable.ic_action_spinner_save, getString(R.string.m2), 3));
data.add(new AbMenu(isDark ? R.drawable.ic_action_spinner_partiehelpdark : R.drawable.ic_action_spinner_partiehelp, getString(R.string.m3), 4));
AbMenuAdapter adapter = new AbMenuAdapter(context, R.layout.ab_spinner_item, data);
getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
getSupportActionBar().setListNavigationCallbacks(adapter, this);
Класс, который я использую для заполнения адаптер.
public class AbMenu {
public int icon;
public String title;
public int id;
public AbMenu() {
super();
}
public AbMenu(int icon, String title, int id) {
super();
this.icon = icon;
this.title = title;
this.id = id;
}
}
Адаптер (это изображение рядом с TextView), который использует пользовательский макет:
public class AbMenuAdapter extends BaseAdapter implements SpinnerAdapter {
Context context;
int layoutResourceId;
ArrayList<AbMenu> data;
LayoutInflater inflater;
public AbMenuAdapter(Context a, int textViewResourceId, ArrayList<AbMenu> data) {
// super(a, textViewResourceId, data);
this.data = data;
inflater = (LayoutInflater) a.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this.context = a;
this.layoutResourceId = textViewResourceId;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
v = inflater.inflate(layoutResourceId, null);
}
final AbMenu item = data.get(position);
if (item != null) {
((android.widget.TextView) v.findViewById(R.id.textViewSpinner)).setText(item.title);
((ImageView) v.findViewById(R.id.imageViewSpinner)).setImageResource(item.icon);
}
return v;
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
v = inflater.inflate(layoutResourceId, null);
}
final AbMenu item = data.get(position);
if (item != null) {
((android.widget.TextView) v.findViewById(R.id.textViewSpinner)).setText(item.title);
((android.widget.TextView) v.findViewById(R.id.textViewSpinner)).setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16);
((ImageView) v.findViewById(R.id.imageViewSpinner)).setImageResource(item.icon);
}
return v;
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
}
И файл XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_marginBottom="8dp"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:layout_marginTop="8dp"
android:gravity="fill_horizontal" >
<ImageView
android:id="@+id/imageViewSpinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:contentDescription="@string/empty"
android:padding="4dp"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/textViewSpinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_gravity="center_vertical"
android:layout_marginLeft="8dp"
android:layout_marginRight="16dp"
android:layout_toRightOf="@+id/imageViewSpinner"
android:text="@string/empty"
android:ellipsize="end"
android:singleLine="true" />
</RelativeLayout>
Смежные вопросы
- 1. Wordpress навигации стиль, как Android Market ВЕБСАЙТ
- 2. Материал конструкции панель навигации элемент, выбранный стиль
- 3. Как изменить стиль ионной панели навигации?
- 4. Раскрывающийся список навигации
- 5. Стиль неупорядоченный список
- 6. Список Тип Стиль
- 7. Можно ли использовать стиль навигации в WordPress?
- 8. Изменить стиль панели навигации UIImagePicker на синий
- 9. Почему стиль навигации на Wordpress не применяется?
- 10. YouTube навигации мобильный стиль с JQuery мобильного
- 11. Слайд-шоу стиль навигации. addChild & arrays
- 12. Javascript и CSS Перспективы Стиль Панель навигации
- 13. CSS: стиль ввода и меню меню навигации
- 14. Как сохранить стиль меню навигации настойчиво?
- 15. Стиль панели навигации в Modal View
- 16. Android: стиль изменения при фокусировке
- 17. Складной список Элемент в навигации Ящик
- 18. Параметры навигации по меню Android
- 19. Android 5 - Выпадающий список Spinner на панели навигации
- 20. Стиль элемента управления Android SimpleAdapter
- 21. Android способ навигации по приложению
- 22. Список навигации Wordpress не отображается
- 23. неупорядоченный список навигации html structure
- 24. Семантический HTML Практика: список навигации
- 25. Вручную открыть список навигации ActionBar
- 26. , реализующий список навигации ActionBar + ListFragment
- 27. Сделать мой список навигации справа
- 28. Android-эквивалентные события для навигации и навигации
- 29. Android 4.4. Полупрозрачный стиль статуса и стиля навигации на Android 5.0
- 30. Android навигации Drawer - Несколько секций
спасибо. Как вы могли бы знать, что я получил это из панели действий sherlock, как показано здесь http://pastebin.com/uk6qHgY7. могу ли я внести некоторые изменения в библиотеку, чтобы повернуть выравниватель прямо вправо. Например: настройка прокладки и т. Д.?? –
Думаю, вы могли бы. Перейдите в проект ActionBarSherlock и откройте файл sherlock_spinner_item.xml в папке res/layout (и layout-v14). Это тот, который используется по умолчанию. Это простой текстовый вид, вам просто нужно добавить 'gravity =" center ", и он должен работать. –
он работает. Но я хотел, чтобы весь счетчик был перемещен в полный правый конец. Это возможно? –