Мне нужно сделать полностью пользовательские пункты меню переполнения (разные цвета фона, как показано на рисунке).Элементы меню переполнения элементов меню в режиме действия
Возможно ли это?
Мне нужно сделать полностью пользовательские пункты меню переполнения (разные цвета фона, как показано на рисунке).Элементы меню переполнения элементов меню в режиме действия
Возможно ли это?
Вы можете настроить собственное представление для каждого элемента MenuItem.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add("test").setActionView(R.layout.custom_action_menu_item);
return super.onCreateOptionsMenu(menu);
}
http://developer.android.com/reference/android/view/MenuItem.html#setActionView%28int%29
Он работает, когда MenuItem отображается в панели действий. Но не работает, когда пункт меню внутри меню переполнения. – user2069363
В последний день я должен реализовать Bar Action Sherlock.And мой случай был такой же, как ваша. У меня есть реализовать адаптер для моей навигации List.Let сказать:
public class MyNavigationAdapter extends BaseAdapter {
Context mContext = null;
String[] mTitles;
LayoutInflater mLayOutInflater = null;
public MyNavigationAdapter(Context context, String[] titles) {
this.mContext = context;
this.mTitles = titles;
mLayOutInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return mTitles.length;
}
@Override
public Object getItem(int arg0) {
return null;
}
@Override
public long getItemId(int arg0) {
return 0;
}
@Override
public View getView(int position, View view, ViewGroup parent) {
if (view == null)
view = mLayOutInflater.inflate(R.layout.my_list_custom_row, parent,false);
TextView rowName = (TextView) view.findViewById(R.id.title);
rowName.setText(mTitles[position]);
rowName.setBackground(your desire drawle);// yo
u can also set color etc.
//OR
if(position%2==0)
rowName.setBackgroundColor(Color.RED);
else
rowName.setBackgroundColor(Color.BLUE);
return view;
}
}
После этого, вы должны написать эти строки кода в вашей деятельности OnCreate Митос.
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
actionBar.setListNavigationCallbacks(mNavigationAdapterObj, mNavigationListner);
для получения дополнительной информации
исчезнет, проконсультироваться here.Хорошее решение! Но я предпочитаю это: http://stackoverflow.com/a/14123377/2069363 Потому что это позволяет мне создавать прядильщик с иконкой меню переполнения в том же месте, что и в оригинальном меню переполнения. – user2069363
Да, вы также можете добавить значок, если хотите. Я могу обновить свой ответ для значков, если вы хотите. –
Это же решение, основная тема такая же. Примите мой ответ. –
Это один https://stackoverflow.com/a/14123377/2069363 работает для меня!
Вы можете создать такое поведение, используя Spinner (или IcsSpinner для ActionBarSherlock) в макете действия элемента меню. Хотя вам нужно использовать небольшой трюк - скрыть выбранный элемент.
Это [можно изменить цвет * все * пункты меню переполнения] (https://groups.google.com/forum/?fromgroups#!topic/actionbarsherlock/5lHOKNlXn_4), но я не верю их можно установить индивидуально. – Eric
Но для каждого элемента мне нужны разные стили. Я знаю один способ сделать это - PopupWindow с собственным макетом. Но это не так элегантно, как всплывающее меню в панели действий. – user2069363
Вы можете достичь этой настройки адаптера вашего списка действий. В адаптере вы можете установить различные цвета фона. –