Ответ 1
вы можете просто добавить configChanges в файл манифеста, как показано ниже:
<activity android:name=".YourActivity"
android:configChanges="orientation|screenSize"/>
Я пытаюсь попробовать образец uamp, всякий раз, когда меняется ориентация, состояние Recyclerview MediaBrowserFragment теряется (его положение прокрутки не поддерживается).
Моя проблема заключается в том, как поддерживать положение прокрутки в образце uamp.
Я знаю, что я могу сохранить положение прокрутки и восстановить его позже, но поскольку recyclerView сам поддерживает состояние прокрутки, я не хочу этого взломать.
Я попробовал нажать этот простой фрагмент вместо MediaBrowserFragment и сохранить его прокрутку
public class TestFragment extends Fragment {
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View mRootView = inflater.inflate(R.layout.fragment_test, container, false);
RecyclerView recyclerView = (RecyclerView) mRootView.findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
recyclerView.setAdapter(new RecAdapter());
return mRootView;
}
private class RecAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_text, null);
return new ItemViewHolder(itemView);
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
((ItemViewHolder) holder).title.setText(""+ position);
}
@Override
public int getItemCount() {
return 200;
}
}
private class ItemViewHolder extends RecyclerView.ViewHolder {
TextView title;
ItemViewHolder(View itemLayoutView) {
super(itemLayoutView);
title = (TextView) itemLayoutView.findViewById(R.id.title);
}
}
}
Обновить
Я поднял вопрос с uamp
https://github.com/googlesamples/android-UniversalMusicPlayer/issues/217
вы можете просто добавить configChanges в файл манифеста, как показано ниже:
<activity android:name=".YourActivity"
android:configChanges="orientation|screenSize"/>