Khi tôi lật điện thoại Android của mình lộn ngược, Hoạt động của tôi không xoay để hiển thị bố cục lộn ngược nhưng vẫn ở chế độ ngang thay thế. Tôi đã thử điều này với một ứng dụng HelloWorld rất đơn giản. Tôi đã thêm android:configChanges="orientation"
vào tệp kê khai và ghi đè onConfigurationChange()
trong Hoạt động để đặt điểm ngắt tại đó. Xoay ngược thiết bị tạo ra một thay đổi cấu hình để đi từ chân dung (upside up) sang phong cảnh nhưng không có thay đổi thứ hai từ cảnh quan đến chân dung (lộn ngược). Đây có phải là vấn đề về Android hay không, tôi có cần phải làm gì không?Xoay ngược không kích hoạt thay đổi cấu hình
Manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="hello.world"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="10" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:configChanges="orientation"
android:name=".HelloWorldActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Hoạt động:
public class HelloWorldActivity
extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
{
Log.e("MDO", "orientation change: landscape");
}
else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT)
{
Log.e("MDO", "orientation change: portrait");
}
}
}
Bạn có chắc chắn thiết bị của mình thực hiện việc này không? Tôi hiếm khi thấy các ứng dụng cho phép điều này. – DeeV
Tôi chưa từng thấy hành vi này với một số ứng dụng chuẩn (Cài đặt, trình duyệt, v.v.) mà tôi đã thử nhưng có thể với 'android: screenOrientation =" fullSensor "' –