1

Когда я заметил, что большинство навигационных параметров в Actionbar становятся устаревшими, я быстро начал заменять панель действий новой панелью инструментов Android. В основном хорошо работая, я все еще сталкиваюсь с проблемами. У меня есть прядильщик на моей панели инструментов, содержимое которого исчезает при вращении.Android Spinner и панель инструментов (android.support.v7.widget.Toolbar)

Моя панель инструментов находится в планировке MainActivity, как это:

<android.support.v7.widget.Toolbar 
     android:id="@+id/act_main_toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     > 
</android.support.v7.widget.Toolbar> 

В OnCreate в MainActivity я накачивания кнопки меню, логотип и кок

mToolbar.setLogo(R.drawable.action_bar_icon); 
Toolbar.inflate(this, R.layout.toolbar_spinner, mToolbar); 
mToolbar.inflateMenu(R.menu.toolbar_menu); 

При вращении экрана в Содержимое Spinner исчезает, прядильщик все еще там просто пуст. SpinnerAdapter, содержащий элементы, все еще содержит их, так же, как адаптер отсоединен от панели инструментов.

Редактировать обновленный код для создания SpinnerAdapter:

Адаптер устанавливается в OnCreate фрагмента:

mToolbar = (Toolbar) getActivity().findViewById(R.id.act_main_toolbar); 
mToolbarSpinner = (Spinner) mToolbar.findViewById(R.id.act_main_toolbar_spinner); 
mToolbarSpinner.setAdapter(adapter); 

Тогда у меня есть asyncTasks, которые восстановить данные после того, как поиск производится I используйте следующий вызов, чтобы представить данные:

adapter.notifyDataSetChanged() 

Edit 2

Проблема возникла из-за того, что ссылка на mToolbar, созданная в onCreate, становилась неисправной после поворота экрана. Перемещая следующее onCreateView он начал работать:

mToolbar = (Toolbar) getActivity().findViewById(R.id.act_main_toolbar); //This fixed it! 
mToolbarSpinner = (Spinner) mToolbar.findViewById(R.id.act_main_toolbar_spinner); 
mToolbarSpinner.setAdapter(adapter); 
+0

Вы можете разместить код, в котором вы добавляете spinneradapter на панель инструментов? – JoaoBiriba

+0

Теперь я добавил код. – user1354603

ответ

1

Ссылка на mToolbar в фрагменте не исправит больше после изменения ориентации экрана. Проблема была решена путем извлечения новой ссылки на mToolbar в onCreateView, а не в OnCreate:

mToolbar = (Toolbar) getActivity().findViewById(R.id.act_main_toolbar); 
Смежные вопросы