30/09/2018, 17:32

What does android:layout_weight mean?

Đang học Android, for fun, thì gặp khái niệm mới layout_weight. Đây là giải thích của một bác trên SO. Quả nhiên là người hiểu vấn đề họ giải thích rất dể hiểu.


With layout_weight you can specify a size ratio between multiple views. E.g. you have a MapView and a table which should show some additional information to the map. The map should use 3/4 of the screen and table should use 1/4 of the screen. Then you will set the layout_weight of the map to 3 and the layout_weight of the table to 1.

To get it work you also have to set the height or width (depending on your orientation) to 0px.


Như hình này thì layout_weight như thế nào nhỉ

Nguồn: http://stackoverflow.com/questions/3995825/what-does-androidlayout-weight-mean

TTmagic viết 19:45 ngày 30/09/2018

7+8+75+10 = 100
(Em phải mở PS ra để đo đó =)) )

Mai Anh Dũng viết 19:36 ngày 30/09/2018

Haha, đây này

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:orientation="vertical" >
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/to" />
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/subject" />
    <EditText
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:gravity="top"
        android:hint="@string/message" />
    <Button
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:text="@string/send" />
</LinearLayout>

Link: http://developer.android.com/guide/topics/ui/layout/linear.html

Minh Hoàng viết 19:39 ngày 30/09/2018

android:layout_height=“0dp”

hình như phải thêm cái này nữa mới dùng layout_weight. Height 0dp == không quan tâm height.

The problems are the circumstances it is used in. In this case it is used with layout_height set to match_parent. In some (!) cases this keeps Android from interpreting the layout_weights correctly. In this case, a vertical layout of view elements, the solution is setting layout_heights to 0dp. With a horizontal layout of view elements layout_width should be set to 0dp.

http://www.chess-ix.com/blog/the-use-of-layout_weight-with-android-layouts/

Mai Anh Dũng viết 19:35 ngày 30/09/2018

Nếu android:orientationvertical thì layout_height phải là 0dp. Ngược lại nếu android:orientationhorizontal thì layout_width phải là 0dp

Video này nói rất rõ này

Bài liên quan
0