在编辑图库时,我从纵向更改为横向时遇到问题。更改屏幕方向时,方法PageAdapter.instantiateItem(View container, int position)
中的页面位置变为0。我希望存储当前页面位置,以便在方向更改时保留在此页面中。
答案 0 :(得分:2)
您需要将当前显示的页面存储在已保存的实例状态中。有关如何保存状态,请阅读documentation。
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
// Save the current item
savedInstanceState.putInt("current_item", pager.getCurrentItem());
// Always call the superclass so it can save the view hierarchy state
super.onSaveInstanceState(savedInstanceState);
}
更改了方向后,该状态可以为restored,并用于设置寻呼机的位置。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); // Always call the superclass first
// Check whether we're recreating a previously destroyed instance
if (savedInstanceState != null) {
// Restore value of members from saved state
mCurrentItem = savedInstanceState.getInt("current_item");
}
}
致电pager.setCurrentItem(mCurrentItem);
,例如在onStart()
或onResume()
方法中。
有关如何获取和设置当前所选项目,请阅读ViewPager
文档: