android - 处理 ViewPager 的方向变化
问题描述
我已经搜索了整个互联网,但无法解决我的问题。有一个带有适配器的片段:
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
CURRENT_TAB = viewPager.getCurrentItem();
outState.putInt("current_tab", CURRENT_TAB);
}
好的,很好,我的当前页面= 2 已保存。然后我有:
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AppPreferences appPreferences = new AppPreferences(getContext());
if (savedInstanceState != null) {
CURRENT_TAB = savedInstanceState.getInt("current_tab");
viewPager.post(new Runnable() {
@Override
public void run() {
viewPager.setCurrentItem(CURRENT_TAB);
}
});
}
……
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
view = inflater.inflate(R.layout.fragment_orderlist, container, false);
savedInstanceState.getString("current_tab"));
在这两种情况下,我的 savedInstanceState 都是空的。怎么了?
解决方案
// First extend your class with Fragment like
public class Abc extends Fragment {
private View rootView;
private static CustomViewPager mPager;
private static int currentPage = 0;
// Then Required an empty public constructor
public Abc() {
}
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.fragment_amazing_hero, container, false);
//Now initialize the viewpager and do the magic
mPager = rootView.findViewById(R.id.pager);
mPager.setAdapter(new Your_Adapter(getActivity(), ArrayList));
mPager.setPagingEnabled(false);
int NUM_PAGES = ArrayList.size();
return rootView;
推荐阅读
- c# - 使用 Automapper 映射复杂的继承模型
- javascript - 在 google chrome 浏览器中,Web Audio API 无法正常工作
- flutter - 是否可以在底页外启用点击?
- javascript - 不切换时如何修复jQuery的切换功能?
- clang - 新行中的大括号 ( { )
- r - R包tmap:无法在线叠加点&无法在视图模式下显示点
- reactjs - 在这个 redux react 示例中,根 reducer 来自哪里,dispatch 如何知道要使用哪个 reducer?
- laravel - ErrorException:文件中的数组到字符串的转换
- javascript - 页面刷新时显示 SWIPER JS API 的中间幻灯片
- c++ - 带有构造函数的简单类引发警告:ISO C++ 禁止将字符串常量转换为 'char*'