【发布时间】:2013-06-14 20:16:11
【问题描述】:
我在片段中有这段代码
public class TestOne extends Fragment {
View view = null;
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
LayoutInflater inflater2 = (LayoutInflater)getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater2.inflate(R.layout.testone, null);
Toast.makeText(getActivity(), "Rotate fragment", Toast.LENGTH_SHORT).show();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Toast.makeText(getActivity(), "onCreate Fragment", Toast.LENGTH_SHORT).show();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
view = inflater.inflate(R.layout.testone, null);
Toast.makeText(getActivity(), "onCreateView fragment", Toast.LENGTH_SHORT).show();
return view;
}
}
我想要做的是,当我旋转手机时,我不希望再次执行这些方法。但我想再次调用 xml 布局,加载 layout-land 文件夹的 xml。
这段代码没有给出任何错误,只是不起作用,不明白原因..
我真的对使用 onConfiguratonChanged 来做这件事很感兴趣
感谢您的帮助。
感谢和问候
【问题讨论】:
-
FragmentActivity中的方法 -
片段中应该有方法
-
为什么它应该起作用?在
onConfigurationChanged中,您只需扩充布局并将其分配给Activity的字段之一。我建议您使用setRetainInstance(true)而不是onConfigurationChanged方式。作为手动解决方案,我想您始终可以从getView()中删除所有视图并重新附加新膨胀的布局。 -
我已经搜索过但找不到任何显示如何使用 setRetainInstance (true) 的示例。用它好不好?
-
请具体描述它是如何失败的。 “只是不起作用”不是很清楚。
标签: android android-fragments screen-rotation onconfigurationchanged