Wednesday, October 4, 2017

Layout weight

Trong lúc làm ứng dụng, đôi khi ta cần các view có chiều rộng chia theo tỷ lệ màn hình.
Ví dụ ta cần một LinearLayout ngang có 4 textView, mỗi textView chiếm ¼ màn hình, chúng đều có viền. Khi đó ta sẽ dùng Layout weight để căn chỉnh.
<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="20dp" >

        <TextView
            android:layout_width="0dp"
            android:layout_height="150dp"
            android:layout_gravity="center_horizontal"
            android:layout_weight="1"
            android:background="@drawable/line2"
            android:textColor="#800000"
            android:textSize="15sp" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="150dp"
            android:layout_gravity="center_horizontal"
            android:layout_marginLeft="-1dp"
            android:layout_weight="1"
            android:background="@drawable/line2"
            android:textColor="#800000"
            android:textSize="15sp" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="150dp"
            android:layout_gravity="center_horizontal"
            android:layout_marginLeft="-1dp"
            android:layout_weight="1"
            android:background="@drawable/line2"
            android:textColor="#800000"
            android:textSize="15sp" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="150dp"
            android:layout_gravity="center_horizontal"
            android:layout_marginLeft="-1dp"
            android:layout_weight="1"
            android:background="@drawable/line2"
            android:textColor="#800000"
            android:textSize="15sp" />
    </LinearLayout>
Chiều rộng các ô bây giờ đều để bằng 0, android:layout_width="0dp"
Nếu ta muốn chiều rộng LinearLayout là một số cố định, ta sửa dòng trên cùng thành
android:layout_width="280dp"
Lúc đó các ô cũng tự co chiều ngang lại
Nếu bạn muốn ô thứ hai to gấp đôi các ô còn lại thì để layout_weight của nó là 2.


No comments:

Post a Comment