【发布时间】:2014-09-09 23:44:24
【问题描述】:
我对 Android(和编码)还是新手,这是我第一次使用 Swipe 视图,即 ViewPagers 和适配器。我的活动有 3 个片段。当我从片段 A 移动到片段 B 时,一切都很好。但是当我移动到 Fragment C 时,onStop 被调用到 Fragment A。当我回到 Fragment A 时,我的所有视图都已恢复,除了少数几个。 EditText 的观点很好,但其他观点有问题......
- 我有几个我启用/禁用的 TextView。这些状态不会保留。
- 其他 TextView 可以是可见/不可见的。这些状态不会保留。
- 我认为 TextView 文本也不会被保留。
我的印象是onSaveInstanceState 节省了浏览量。我必须手动保存这些状态吗?既然这些是Fragments,那应该通过arguments 来完成吗?
这是我的片段onCreateView
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
rootView = inflater.inflate(
R.layout.activity_grade_calculator, container, false);
Bundle args = getArguments();
if(args.containsKey(PERSISTENT_FIRSTLOAD_BUNDLE_KEY)) {
firstLoad = args.getBoolean(PERSISTENT_FIRSTLOAD_BUNDLE_KEY);
}
context = this.getActivity();
if(firstLoad) {
bindAll();
setInitialViews();
setListeners();
}
firstLoad = false;
return rootView;
}
这里是MyPagerAdapter
@Override
public Fragment getItem(int i) {
//System.out.println("We are trying to get item " + i);
switch(i) {
case 0:
Fragment fragment = new FinalCalcFragment();
return fragment;
case 1:
Fragment fragment1 = new NewGradeCalcFragment();
return fragment1;
case 2:
Fragment fragment3 = new NewGradeCalcFragment();
return fragment3;
default:
return null;
}
}
这里有一些表现不佳的TextViews。
<TextView
android:id="@+id/tv_grade_calc_forgrade"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/radioGroup1"
android:layout_marginTop="4dp"
android:text="@string/tv_grade_calc_forgrade" />
<TextView
android:id="@+id/tv_grade_calc_ifscore"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/radioGroup1"
android:layout_marginTop="4dp"
android:text="@string/tv_grade_calc_ifscore" />
<TextView
android:id="@+id/tv_grade_calc_result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@id/tv_grade_calc_ifscore"
android:layout_marginRight="10dp"
android:layout_marginTop="-7dp"
android:textSize="28sp" />
编辑:顺便说一句,我玩过FragmentPagerAdapter 和FragmentStatePagerAdapter。我不完全理解他们的不同之处,但似乎都没有给我想要的。
【问题讨论】:
-
FragmentStatePagerAdapter 在您的情况下更可取,因为它可以保存您的 Fragments 的状态。
-
谢谢,虽然它仍然没有像我想要的那样保存 TextViews。
标签: android android-layout android-fragments android-viewpager android-view