Nhìn vào AndroidManifest.xml ( liên kết ), trên dòng 9:
<activity android:screenOrientation="landscape" android:configChanges="orientation|keyboardHidden" android:name="VncCanvasActivity">
Dòng này chỉ định screenOrientation
là phong cảnh, nhưng tác giả đi xa hơn trong việc ghi đè bất kỳ thay đổi hướng màn hình nào với configChanges="orientation|keyboardHidden"
. Điều này trỏ đến một chức năng bị ghi đè trong VncCanvasActivity.java.
Nếu bạn nhìn vào VncCanvasActivity, trên dòng 109 là chức năng được ghi đè:
@Override
public void onConfigurationChanged(Configuration newConfig) {
// ignore orientation/keyboard change
super.onConfigurationChanged(newConfig);
}
Tác giả đặc biệt đặt một bình luận để bỏ qua bất kỳ thay đổi bàn phím hoặc định hướng.
Nếu bạn muốn thay đổi điều này, bạn có thể quay lại tệp AndroidManifest.xml được hiển thị ở trên và thay đổi dòng thành:
<activity android:screenOrientation="sensor" android:name="VncCanvasActivity">
Điều này sẽ thay đổi chương trình để chuyển từ dọc sang ngang khi người dùng xoay thiết bị.
Điều này có thể hoạt động, nhưng có thể làm rối giao diện GUI, tùy thuộc vào cách bố trí được tạo. Bạn sẽ phải tính đến điều đó. Ngoài ra, tùy thuộc vào cách các hoạt động được mã hóa, bạn có thể nhận thấy rằng khi thay đổi hướng màn hình, các giá trị được điền vào bất kỳ hộp đầu vào nào sẽ biến mất. Điều này cũng có thể phải được xử lý.
configChanges
thuộc tính cần thiết? Nó dường như hoạt động trên điện thoại không có bàn phím của tôi mà không có nó ... Trong những tình huống nào, định hướng sẽ thay đổi thành chân dung nếu bạn cóscreenOrientation="landscape"
nhưng bỏ quaconfigChanges
?