Как установить NAVIGATION_MODE_LIST на Панели инструментов new appcompat v7 21

Теперь все методы, связанные с режимами навигации в классе ActionBar , такие как setNavigationMode() … теперь устарели.

Документация объясняет:

 Action bar navigation modes are deprecated and not supported by inline toolbar action bars. Consider using other common navigation patterns instead. 

В моем текущем приложении на ActionBar есть счетчик. Как применить NAVIGATION_MODE_LIST на новой панели инструментов виджета в новой версии appcompat v7 21.
Заранее спасибо.

Solutions Collecting From Web of "Как установить NAVIGATION_MODE_LIST на Панели инструментов new appcompat v7 21"

С API 21 метод setNavigationMode(ActionBar.NAVIGATION_MODE_LIST) устарел .

Лучшим способом работы с прядильщиком является использование панели инструментов следующим образом:

 <android.support.v7.widget.Toolbar android:id="@+id/toolbar_actionbar" android:layout_height="?attr/actionBarSize" android:layout_width="match_parent" android:background="?attr/colorPrimary"> <Spinner android:id="@+id/spinner_toolbar" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </android.support.v7.widget.Toolbar> 

Вы можете найти пример в Google IO 2014

Как всегда, Габриэле прав, поэтому ваш код будет выглядеть так:

Так что это будет выглядеть примерно так:

  private ActionBar actionBar; private Toolbar toolbar; private Spinner spinner; private List<String> mNavigationItems; private ArrayAdapter<CharSequence> mArrayAdapter; /*** * Boolean to know which version is running */ private boolean postICS,postLollipop; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_nav_list);//find the toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); postLollipop =getResources().getBoolean(R.bool.postLollipop); if(postLollipop){ toolbar.setElevation(15); } //define the toolbar as the ActionBar setSupportActionBar(toolbar); actionBar=getSupportActionBar(); //now manage the spinner mNavigationItems=new ArrayList<String>(); mNavigationItems.add("navigation 1"); mNavigationItems.add("nav 2"); mNavigationItems.add("navigation 3"); spinner= (Spinner) findViewById(R.id.action_bar_spinner); mArrayAdapter = new ArrayAdapter(this, R.layout.actionbar_spinner_dropdown_item, mNavigationItems); mArrayAdapter.setDropDownViewResource(R.layout.actionbar_spinner_dropdown_item); spinner.setAdapter(mArrayAdapter); } 

И старайтесь не использовать spinnerAdapter (потому что вы не сможете управлять своим стилем с помощью AppTheme).

И если вы хотите использовать Tab (NavigationMode.Tabs), вы должны использовать библиотеку Design (здесь объясняется: http://android-developers.blogspot.fr/2015/05/android-design-support-library.html?m = 1) и скопируйте пасту ниже "

Вкладки Переключение между различными видами в приложении через вкладки – это не новая концепция материального дизайна, и они одинаково дома как шаблон верхнего уровня или для организации различных группировок контента в вашем приложении (скажем, разных жанров музыки).

В TabLayout библиотеки Design реализованы обе фиксированные вкладки, где ширина представления разделяется поровну между всеми вкладками, а также прокручиваемыми вкладками, где вкладки не являются одинаковым размером и могут прокручиваться по горизонтали. Вкладки можно добавлять программно:

TabLayout tabLayout = …; TabLayout.addTab (tabLayout.newTab (). SetText ("Tab 1")); Однако, если вы используете ViewPager для горизонтального подкачки между вкладками, вы можете создавать вкладки непосредственно из getPageTitle () PagerAdapter и затем соединять их вместе с помощью setupWithViewPager (). Это гарантирует, что события выбора табуляции будут обновлять ViewPager и изменения страницы, чтобы обновить выбранную вкладку.

"