我有一个 ListActivity,我想在手机方向为纵向时显示它,并且我有另一个正常 Activity,我想在用户将手机旋转到横向模式时显示它。
一些代码:
public class ListActivity extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (this.getResources (). getConfiguration (). orientation == Configuration.ORIENTATION_PORTRAIT) {
//Do stuff
}else if (this.getResources (). getConfiguration (). orientation == Configuration.ORIENTATION_LANDSCAPE) {
Intent myIntent = new Intent(getApplicationContext(), AnotherActivity.class);
startActivity(myIntent);
}
}
}
这种方法有效,但存在一些问题。还有更正确的方法吗?这种方法的问题是,当你旋转手机并按下返回按钮时,屏幕就会变黑,因为手机没有旋转。那么我是否应该以其他方式实现旋转,或者以某种方式修改后退按钮,以便用户无法返回到上一个 Activity?
最佳答案
这是正常的方式。但等待时间很长——5秒。
还有另一种方法:
将方向更改注册为配置更改
A.
activity android:name=".SomeActivity"
android:label="@string/app_name"
android:configChanges="orientation"
并将其作为配置更改进行处理。
B.
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setContentView(R.layout.main);
SetupActivity();
}
关于java - 如何处理 Android 上的屏幕旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8120513/