Cấp bậc tác giả:

JAVA

So sánh LinearLayout và RelativeLayout

Được viết bởi webmaster ngày 27/03/2016 lúc 09:21 PM
Bộ công cụ Android UI cung cấp một số trình quản lý bố trí khá dễ dàng để sử dụng, bạn chỉ cần các tính năng cơ bản bố trí để thực hiện cho giao diện người dùng.
  • 0
  • 8328

So sánh LinearLayout và RelativeLayout

Bộ công cụ Android UI cung cấp một số trình quản lý bố trí khá dễ dàng để sử dụng, bạn chỉ cần các tính năng cơ bản bố trí để thực hiện cho giao diện người dùng. Một ví dụ phổ biến là việc lạm dụng LinearLayout, dẫn đến một sự gia tăng hệ thống phân cấp view. Mỗi lượt xem, hoặc tồi tệ hơn mỗi quản lý bố trí, bạn thêm vào ứng dụng đi kèm với chi phí: khởi tạo, bố trí và vẽ trở nên chậm hơn. Những đường chuyền bố trí có thể đặc biệt đắt tiền khi bạn làm nhiều LinearLayout sử dụng tham số.

Hãy xem xét ví dụ đơn giản và phổ biến của bố trí: danh sách với một biểu tượng bên trái, một tiêu đề ở đầu và một mô tả tùy chọn bên dưới tiêu đề.

huong-dan-layout-01-a.jpg

Để hiểu rõ cách thức, một ImageView và hai TexView, được định vị đối với nhau:

huong-dan-layout-01-b.png

Thực hiện bố trí đơn giản với LinearLayout. Là một LinearLayout ngang với một ImageView và một LinearLayout thẳng đứng, trong đó có hai TextView. Mã nguồn bố trí như sau:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    
    android:padding="6dip">
    
    <ImageView
        android:id="@+id/icon"
        
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_marginRight="6dip"
        
        android:src="@drawable/icon" />

    <LinearLayout
        android:orientation="vertical"
    
        android:layout_width="0dip"
        android:layout_weight="1"
        android:layout_height="fill_parent">

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:layout_weight="1"
                    
            android:gravity="center_vertical"
            android:text="DOTNET GROUP" />
            
        <TextView  
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:layout_weight="1" 
            
            android:singleLine="true"
            android:ellipsize="marquee"
            android:text="Chuyên xây dựng và phát triển dự án .NET" />
            
    </LinearLayout>

</LinearLayout>

Bố trí này làm việc nhưng có thể lãng phí nếu cho mỗi mục trong danh sách  ListView. Việc bố trí tương tự có thể được viết lại sử dụng một đơn RelativeLayout , do đó tiết kiệm, và mức độ tốt hơn trong phân cấp xem, mỗi mục trong danh sách. 

huong-dan-layout-02.png

Việc thực hiện bố trí với RelativeLayout vẫn đơn giản:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    
    android:padding="6dip">
    
    <ImageView
        android:id="@+id/icon"
        
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        
        android:layout_alignParentTop="true"
        android:layout_alignParentBottom="true"
        android:layout_marginRight="6dip"
        
        android:src="@drawable/icon" />

    <TextView  
        android:id="@+id/secondLine"

        android:layout_width="fill_parent"
        android:layout_height="26dip" 
        
        android:layout_toRightOf="@id/icon"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        
        android:singleLine="true"
        android:ellipsize="marquee"
        android:text="Chuyên đào tạo lập trình viên .NET" />

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        
        android:layout_toRightOf="@id/icon"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_above="@id/secondLine"
        android:layout_alignWithParentIfMissing="true"
                
        android:gravity="center_vertical"
        android:text="DOTNET GROUP" />

</RelativeLayout>

huong-dan-layout-03.png

Nguồn bài viết: DOTNET.VN

BÌNH LUẬN BÀI VIẾT

Bài viết mới nhất

LIKE BOX

Bài viết được xem nhiều nhất

HỌC HTML