我想在启动时设置子活动的方向。方向必须在运行时设置,而不是在XML中设置。所以我把它的代码放在onCreate()中。我也有
android:configChanges="orientation|screenSize"
在活动的清单中。但是当活动开始时,它首先以错误的方向绘制屏幕,然后进行更改。如何消除这种狡猾?
这与此主题有关:how to define the screen orientation before the activity is created?。此外,我知道自从我处理配置更改后,我的活动才会启动一次。
这是我在onCreate中的代码:
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
orientation = sharedPref.getString("orientation_pref", "Auto");
setOrientation(orientation);
setContentView(R.layout.grid);
由于某种原因,它会在加载R.layout文件后更改方向。
答案 0 :(得分:0)
只需在android-manifest xml中定义方向
即可 <activity android:name=".MyActivity"
android:screenOrientation="portrait">
如果您在“活动”之间移动并且由于此而导致闪烁,请将此xml属性添加到您的活动中
android:launchMode="singleTask"
在onCreate
中使用用户pref尝试setContentView SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
boolean portrait = prefs.getBoolean(KEY_ORIENTATION, true);
if (portrait) {
setContentView(R.layout.myactivity);
else {
setContentView(R.layout-land.myactivity);
}