android ViewSwitcher屏幕方向更改
我有一个ViewSwitcher在一个片段活动中,有两个布局文件,每个方向一个。ViewSwitcher由无线电组控制 当我旋转屏幕时,一切都按照我的预期进行,正确的布局文件用于渲染屏幕 但是,当屏幕旋转时,将触发无线组的onCheckedChanged事件。在onCreate中创建的侦听器如下所示:android ViewSwitcher屏幕方向更改,android,android-orientation,viewswitcher,Android,Android Orientation,Viewswitcher,我有一个ViewSwitcher在一个片段活动中,有两个布局文件,每个方向一个。ViewSwitcher由无线电组控制 当我旋转屏幕时,一切都按照我的预期进行,正确的布局文件用于渲染屏幕 但是,当屏幕旋转时,将触发无线组的onCheckedChanged事件。在onCreate中创建的侦听器如下所示: 我怎样才能在屏幕旋转时在侦听器中调用viewSwitcher.showNext而不触发它呢?嗯,我找到了一个黑客解决方案,但我希望有一个更好的解决方案 private boolean wa
我怎样才能在屏幕旋转时在侦听器中调用viewSwitcher.showNext而不触发它呢?嗯,我找到了一个黑客解决方案,但我希望有一个更好的解决方案
private boolean wasRotatedHack;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.savedInstanceState = savedInstanceState;
if (savedInstanceState == null) {
wasRotatedHack = false;
} else {
wasRotatedHack = true;
}
tabRadios.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int index) {
if (!wasRotatedHack) {
viewSwitcher.showNext();
} else {
wasRotatedHack = false;
}
}
});
startInspectionButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(getApplicationContext(), InspectionActivity.class));
}
});
}
只是对它进行了更多的测试,当你关闭屏幕并重新打开时,它会变得一团糟。一定有更干净的方法。。。
private boolean wasRotatedHack;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.savedInstanceState = savedInstanceState;
if (savedInstanceState == null) {
wasRotatedHack = false;
} else {
wasRotatedHack = true;
}
tabRadios.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int index) {
if (!wasRotatedHack) {
viewSwitcher.showNext();
} else {
wasRotatedHack = false;
}
}
});
startInspectionButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(getApplicationContext(), InspectionActivity.class));
}
});
}