Android: bố trí thay thế xml cho chế độ ngang


Câu trả lời:


217

Theo mặc định, bố cục trong /res/layoutđược áp dụng cho cả dọc và ngang.

Nếu bạn có ví dụ

/res/layout/main.xml

bạn có thể thêm một thư mục mới /res/layout-land, sao chép main.xmlvào đó và thực hiện các điều chỉnh cần thiết.

sự định hướng

Xem thêm http://www.androidpeople.com/android-portrait-amp-landscape-differeent-layoutshttp://www.devx.com/w châu / Article / 40792/1954 để biết thêm một số tùy chọn.


1
Tôi có nên giữ tên bố cục đất hay bất kỳ từ nào khác @marapet
Vamsi Pavan Mahesh

9
Bạn không thể sử dụng bất kỳ từ nào khác
Foo

Hình nền của tôi trải dài trên phong cảnh. Tôi có đất bố trí và đất có thể vẽ được..trong khi nó trải dài ra..Tôi đã thử sử dụng cùng một hình ảnh, hình ảnh 9 miếng, mdpi, hdpi n tất cả..những vấn đề vẫn tồn tại :(
Hà Lan

từ này là gìportrait
dsdsdsdsd

@dsdsdsdsd theo studio Android, đó là layout-port
Gregzenegair

76

Trong phiên bản hiện tại của Android Studio (v1.0.2), bạn chỉ cần thêm bố cục ngang bằng cách nhấp vào nút trong trình chỉnh sửa hình ảnh được hiển thị trong ảnh chụp màn hình bên dưới. Chọn "Tạo biến đổi cảnh quan"

Android Studio thêm bố cục cảnh quan


Ngoại trừ nó đặt một bản sao mới trong layout-landthư mục của bạn . Bất kỳ ý tưởng làm thế nào để gọi một bố trí từ đó? Không thể sử dụng R.layout.layout_name. Tôi đang cố gắng tự cấu hình bố cục của mình theo cách thay đổi cấu hình, cảm ơn.
Azurespot

2
@NoniA. Nó sẽ tự động phát hiện khi điện thoại chuyển sang ngang và tự động gọi điện thoại từ đất bố trí.
Distwo

43

Các bố cục trong / res / layout được áp dụng cho cả dọc và ngang, trừ khi bạn chỉ định khác. Giả sử chúng tôi có /res/layout/home.xml cho trang chủ của chúng tôi và chúng tôi muốn nó trông khác nhau trong 2 loại bố cục.

  1. tạo thư mục / res / layout-land (ở đây bạn sẽ giữ bố cục điều chỉnh cảnh quan của mình)
  2. sao chép home.xml ở đó
  3. thực hiện những thay đổi cần thiết cho nó

Nguồn


Còn 'chân dung' thì sao?
dsdsdsdsd

Còn với vòng loại <sw> mới thì sao?
Ruchir Baronia

6

Cách nhanh nhất cho Android Studio 3.xx và Android Studio 4.xx

1. Đi đến tab thiết kế của bố trí hoạt động

2. Ở đầu bạn nên nhấn vào nút định hướng để xem trước , có một tùy chọn để tạo bố cục ngang (kiểm tra hình ảnh), một thư mục mới sẽ được tạo dưới dạng tệp bố cục xml của bạn cho hướng cụ thể đó

nhập mô tả hình ảnh ở đây


2

Bạn có thể nhóm bố cục cụ thể của bạn theo cấu trúc thư mục chính xác như sau.

bố trí-đất-đích_version

I E

layout-land-19 // mục tiêu KitKat

tương tự như vậy, bạn có thể tạo bố cục của bạn.

Hy vọng điều này sẽ giúp bạn


Cảm ơn bạn đã trả lời, nhưng tôi không thấy câu trả lời của bạn hữu ích như thế nào vì câu hỏi này đã được trả lời. Có lẽ bạn có thể giải thích lợi ích của -19hậu tố? Điều đó có hữu ích trong bất kỳ cách nào?
Bryan Field

0

Tôi sẽ cố gắng giải thích nó trong thời gian ngắn.

Đầu tiên, bạn có thể nhận thấy rằng bây giờ bạn nên sử dụng ConstraintLayout theo yêu cầu của google (xem thư viện androix).

Trong projet studio android của bạn, bạn có thể cung cấp bố cục dành riêng cho màn hình bằng cách tạo thêm thư mục / bố cục / thư mục. Một cho mỗi cấu hình màn hình đòi hỏi một bố cục khác nhau.

Điều này có nghĩa là bạn phải sử dụng vòng loại thư mục trong cả hai trường hợp:

  • Hỗ trợ thiết bị Android
  • Chế độ ngang hoặc dọc của Android

Kết quả là, đây là một ví dụ:

res/layout/main_activity.xml                # For handsets
res/layout-land/main_activity.xml           # For handsets in landscape
res/layout-sw600dp/main_activity.xml        # For 7” tablets
res/layout-sw600dp-land/main_activity.xml   # For 7” tablets in landscape

Bạn cũng có thể sử dụng vòng loại với các tệp res ressource bằng dimens.xml.

res/values/dimens.xml                # For handsets
res/values-land/dimens.xml           # For handsets in landscape
res/values-sw600dp/dimens.xml        # For 7” tablets

res / value / dimens.xml

<resources>
    <dimen name="grid_view_item_height">70dp</dimen>
</resources>

res / value-land / dimens.xml

<resources>
    <dimen name="grid_view_item_height">150dp</dimen>
</resources>

your_item_grid_or_list_layout.xml

<androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/constraintlayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content

    <ImageView
            android:id="@+id/image"
            android:layout_width="0dp"
            android:layout_height="@dimen/grid_view_item_height"
            android:layout_marginEnd="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:background="@drawable/border"
            android:src="@drawable/ic_menu_slideshow">

</androidx.constraintlayout.widget.ConstraintLayout>

Nguồn: https://developer.android.com/training/multiscreen/sc Greensizes

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.