tôi đang làm việc trên ứng dụng Android có chứa ViewPager
với Fragment
s, như thế này:mảnh ViewPager biến mất khi thay đổi màn hình xoay
MainActivity
(MainActivityFragment
(screenSlideViewPager
(Fragment
s))), có nghĩa là:
Activity
chứaFragment
chứaViewPager
chứaFragment
s
Bây giờ vấn đề của tôi là khi xoay thiết bị hoặc thay đổi xoay màn hình, tất cả các Phân đoạn trong ViewPager sẽ biến mất.
bất kỳ ý tưởng nào để giải quyết vấn đề này?
EDIT 1
MainActivity.java:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getSupportFragmentManager().findFragmentByTag(TAG) == null) {
final FragmentTransaction ft = getSupportFragmentManager()
.beginTransaction();
ft.add(android.R.id.content, new MainActivityFragment(), TAG);
ft.commit();
}
}
MainActivityFragment.java:
public class MainActivityFragment extends Fragment {
private ViewPager mPager = null;
private PagerAdapter mPageAdapter = null;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final View reVal = inflater.inflate(R.layout.activity_main, container, false);
mPager = (ViewPager) reVal.findViewById(R.id.pagerMainContent);
mPageAdapter = new ScreenSlidePagerAdapter(getActivity().getFragmentManager());
mPager.setAdapter(mPageAdapter);
return reVal;
}
private MainGridViewFragment mainGridFragment;
private AlphabetGridViewFragment alphabetGridFragment;
private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
public ScreenSlidePagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public android.app.Fragment getItem(int position) {
switch (position) {
case 1:
mainGridFragment = new MainGridViewFragment();
return mainGridFragment;
case 0:
alphabetGridFragment = new AlphabetGridViewFragment();
return alphabetGridFragment;
default:
return null;
}
}
@Override
public int getCount() {
return 2;
}
}
}
EDIT 2
Rõ ràng là MainActivity
và MainActivityFragment
được tải và chứng minh là ActionBar
, cũng thông báo rằng ViewPager
cũng được tải vì bạn vẫn có thể điều hướng giữa các trang (đèn xanh lam nghĩa là máy nhắn tin đã đến trang cuối) nhưng bạn không thể xem nội dung của nó.
Câu hỏi hay, nhưng chúng tôi cần thêm mã để giúp bạn! –
Khi có xoay màn hình trong Android, hoạt động của bạn bị hủy và tái tạo. Vì vậy, bạn cần phải lưu trạng thái của các biến của bạn và như vậy để bạn có thể "tiếp tục nơi bạn rời đi". Điều này có thể giúp http://developer.android.com/training/basics/activity-lifecycle/recreating.html –
Tôi biết, tôi đã lưu trạng thái hoạt động, nhưng điều này không phá hủy vấn đề, Mọi thứ sẽ biến mất ngay cả các chế độ xem, tôi nghĩa là tôi đang phải đối mặt với màn hình trắng khi xoay thiết bị thay đổi (không có ngoại lệ) – MoHaKa