Sự khác biệt giữa linearLayout, RelativeLayout và AbsoluteLayout là gì?


Câu trả lời:


213

LinearLayout có nghĩa là bạn có thể căn chỉnh từng lượt xem (theo chiều dọc / chiều ngang).

RelativeLayout có nghĩa là dựa trên mối quan hệ của quan điểm từ cha mẹ của nó và các quan điểm khác.

ConstraintLayout tương tự như RelativeLayout ở chỗ nó sử dụng các mối quan hệ với các widget vị trí và kích thước, nhưng có tính linh hoạt bổ sung và dễ sử dụng hơn trong Trình chỉnh sửa bố cục.

WebView để tải html, trang tĩnh hoặc động.

FrameLayout để tải con này lên nhau, như thẻ trong khung, chúng ta có thể đặt chồng lên nhau hoặc bất cứ nơi nào trong khung.

không dùng nữa - AbsoluteLayout có nghĩa là bạn phải đưa ra vị trí chính xác nơi cần xem.

Để biết thêm thông tin, vui lòng kiểm tra địa chỉ này https://developer.android.com/guide/topics/ui/declaring-layout#CommonLayouts


2
Kiểm tra liên kết này cũng anh chàng .. mobiforge.com/designing/story/ từ
Ganapathy C

2
Tuyệt đối không được chấp nhận!
Chiên

3
@Fry tôi đã trả lời điều này trước 2 năm. Xin vui lòng đọc câu hỏi.
Ganapathy C

Rõ ràng AbsoluteLayoutlà không được chấp nhận vì một lý do; nếu nội dung không phù hợp, nó sẽ ném ngẫu nhiên mọi thứ xung quanh. Bạn tốt hơn với một LinearLayoutvà thiết lập tất cả các phần đệm của nó thành 0.
EpicPandaForce

50

Định nghĩa:

  • Bố cục khung: Điều này được thiết kế để chặn một khu vực trên màn hình để hiển thị một mục duy nhất.
  • Bố cục tuyến tính: Bố cục sắp xếp các con của nó trong một cột đơn hoặc một hàng đơn.
  • Bố cục tương đối: Bố cục này là một nhóm xem hiển thị các khung nhìn con ở các vị trí tương đối.
  • Bố trí bảng: Một bố cục sắp xếp con của nó thành các hàng và cột.

Thêm thông tin:

FrameLayout

FrameLayout được thiết kế để chặn một khu vực trên màn hình để hiển thị một mục duy nhất. Nói chung, FrameLayout nên được sử dụng để giữ một chế độ xem một con, bởi vì có thể khó tổ chức các chế độ xem con theo cách có thể mở rộng theo các kích thước màn hình khác nhau mà không có các con chồng lên nhau. Tuy nhiên, bạn có thể thêm nhiều trẻ em vào FrameLayout và kiểm soát vị trí của chúng trong FrameLayout bằng cách gán trọng lực cho từng trẻ, sử dụng android:layout_gravitythuộc tính.

Các khung nhìn con được vẽ trong một ngăn xếp, với con được thêm gần đây nhất lên trên. Kích thước của FrameLayout là kích thước của đứa con lớn nhất của nó (cộng với phần đệm), có thể nhìn thấy hoặc không (nếu cha mẹ của FrameLayout cho phép).

RelativeLayout

RelativeLayout là một tiện ích rất mạnh để thiết kế giao diện người dùng vì nó có thể loại bỏ các nhóm xem lồng nhau và giữ cho hệ thống phân cấp bố cục của bạn phẳng, giúp cải thiện hiệu suất. Nếu bạn thấy mình đang sử dụng một số nhóm linearLayout lồng nhau, bạn có thể thay thế chúng bằng một RelativeLayout duy nhất.

(Tài liệu hiện tại ở đây )

TableLayout

TableLayout bao gồm một số TableRowđối tượng, mỗi đối tượng xác định một hàng (thực ra, bạn có thể có các con khác, sẽ được giải thích bên dưới). Các thùng chứa TableLayout không hiển thị các đường viền cho các hàng, cột hoặc ô của chúng. Mỗi hàng có 0 hoặc nhiều ô; mỗi ô có thể chứa một đối tượng View. Bảng có nhiều cột như hàng có nhiều ô nhất. Một bảng có thể để trống các ô. Các ô có thể trải rộng các cột, như chúng có thể trong HTML.

Chiều rộng của một cột được xác định bởi hàng có ô rộng nhất trong cột đó.


Lưu ý : Bố cục tuyệt đối không được dùng nữa.


4

Tuyến tính: Một bố cục tổ chức các con của nó thành một hàng ngang hoặc dọc duy nhất. Nó tạo ra một thanh cuộn nếu chiều dài của cửa sổ vượt quá chiều dài của màn hình. Điều đó có nghĩa là bạn có thể căn chỉnh từng lượt xem (theo chiều dọc / chiều ngang).

RelativeLayout: Điều này cho phép bạn chỉ định vị trí của các đối tượng con so với nhau (con A ở bên trái của con B) hoặc với cha mẹ (được đặt ở trên cùng của cha mẹ). Nó dựa trên mối quan hệ của quan điểm từ cha mẹ của nó và các quan điểm khác.

WebView: để tải các trang html, tĩnh hoặc động.

Để biết thêm thông tin, hãy tham khảo liên kết này: http://developer.android.com/guide/topics/ui/layout-objects.html


4

LinearLayout - Trong linearLayout, các khung nhìn được sắp xếp theo hướng dọc hoặc ngang.

RelativeLayout - RelativeLayout phức tạp hơn tuyến tính, do đó cung cấp nhiều chức năng hơn. Lượt xem được đặt, như tên cho thấy, liên quan đến nhau.

FrameLayout - Nó hoạt động như một đối tượng và các khung nhìn con của nó được chồng chéo lên nhau. FrameLayout lấy kích thước theo phần tử con lớn nhất.

Bố cục điều phối - Đây là Viewgroup mạnh nhất được giới thiệu trong thư viện hỗ trợ Android. Nó hoạt động như FrameLayout và có rất nhiều chức năng để phối hợp giữa các chế độ xem con của nó, ví dụ: nút nổi và thanh snack, Thanh công cụ với chế độ xem có thể cuộn.


2

Giải thích tuyệt vời tại đây:
https://www.cuelogic.com/blog/USE-framelayout-for-designing-xml-layouts-in-android

Tuyến tính sắp xếp các phần tử cạnh nhau theo chiều ngang hoặc chiều dọc.

RelativeLayout giúp bạn sắp xếp các thành phần UI dựa trên các quy tắc cụ thể. Bạn có thể chỉ định các quy tắc như: căn chỉnh điều này với cạnh trái của cha mẹ, đặt nó ở bên trái / bên phải của các thành phần này, v.v.

AbsoluteLayout dành cho định vị tuyệt đối, tức là bạn có thể chỉ định tọa độ chính xác nơi chế độ xem sẽ đi.

FrameLayout cho phép các vị trí của chế độ xem dọc theo trục Z. Điều đó có nghĩa là bạn có thể xếp chồng các thành phần khung nhìn của bạn lên nhau.

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.