2010-01-23 25 views
115

Tôi đã xem các tham chiếu để có thể chỉ định hai tệp xml bố cục riêng biệt cho một hoạt động, một cho Chân dung và một cho Cảnh. Tôi đã không tìm thấy bất kỳ thông tin về làm thế nào để làm điều đó mặc dù. Làm cách nào để chỉ định cho từng hoạt động mà tệp xml là bố cục dọc và bố cục Cảnh nằm ở đâu?Làm cách nào để chỉ định bố cục khác nhau cho hướng dọc và ngang?

Bạn cũng có thể chỉ định các bố cục khác nhau cho các kích thước màn hình khác nhau không? nếu vậy, làm thế nào hoàn thành cái này?

Trả lời

169

Tạo một thư mục layout-land và đặt phiên bản ngang của tệp XML bố cục vào thư mục đó.

+2

Điều đó có nghĩa là tất cả các hoạt động cần phải xác định cả chế độ ngang và chế độ xem dọc nếu tôi thực hiện điều này? –

+13

Không, nếu không có định nghĩa về bố cục đất nào, nó chỉ sử dụng bố cục XML trong thư mục bố trí chuẩn. –

+0

trong trường hợp của tôi, bố cục đất không hoạt động khi tôi đang sử dụng, android: configChanges = "orientation | keyboardHidden | screenSize" –

58

Bạn chỉ cần đặt nó dưới thư mục riêng biệt với tên gọi khác nhau tùy thuộc vào định hướng và giải pháp, thiết bị sẽ tự động chọn một trong những quyền cho các thiết lập màn hình của nó

Thông tin thêm ở đây:

http://developer.android.com/guide/practices/screens_support.html

trong "Giới hạn thư mục tài nguyên cho kích thước màn hình và mật độ"

+0

Chỉ hoạt động đối với HĐH phiên bản 1.6 trở lên. Nếu bạn muốn hỗ trợ 1.5, bạn cần liên kết này: http://developer.android.com/guide/practices/screens-support-1.5.html –

+2

@Silvio Donnini - liên kết không còn có thông tin bắt buộc. – itsaboutcode

+2

@itsaboutcode Có điều đó: Chuyển xuống "Sử dụng vòng loại cấu hình" – Danation

2

Hoặc sử dụng:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
      android:scrollbars="vertical" 
      android:layout_height="wrap_content" 
      android:layout_width="fill_parent"> 

    <LinearLayout android:orientation="vertical" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent"> 

    <!-- Add your UI elements inside the inner most linear layout --> 

    </LinearLayout> 
</ScrollView> 
16

Chỉ cần một lời nhắc nhở:

Di orientation từ android:configChanges thuộc tính cho hoạt động này trong manifest xml tập tin của bạn nếu bạn đã định nghĩa nó:

android:configChanges="orientation|screenLayout|screenSize" 
3

Create a new directory layout-land, sau đó tạo ra xml tập tin cùng tên trong layout-land vì nó là layout thư mục và căn chỉnh nội dung của bạn cho chế độ Phong cảnh.

Lưu ý rằng id của nội dung trong cả hai xml giống nhau.

14

Dành cho những người yêu thích chuột! tôi nói nhấp chuột phải vào thư mục nguồn và thêm file resource mới, và từ vòng loại sẵn chọn định hướng:

enter image description here


Nhưng bạn vẫn có thể làm nó bằng tay bằng cách nói, thêm các thư mục con " bố trí đất" để

"Your-Project-Direction \ ứng dụng \ src \ chính \ res"

kể từ đó bất kỳ tập tin Layout.xml dưới này thư mục con sẽ chỉ làm việc cho chế độ phong cảnh aut omatically.

Sử dụng "Bố cục cổng" cho chế độ dọc.

Các vấn đề liên quan