Helpex - Trao đổi & giúp đỡ Đăng nhập
21

Khi sử dụng fill_parent, maxWidthkhông có tác dụng.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent"
              android:layout_height="match_parent"
              android:orientation="vertical">
    <LinearLayout android:layout_width="fill_parent"
                  android:layout_height="match_parent"
                  android:orientation="vertical">
        <EditText android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:maxWidth="50dip"/>
    </LinearLayout>    
</LinearLayout>
21 hữu ích 0 bình luận 22k xem chia sẻ
30

Thuộc tính maxWidthkhông ảnh hưởng đến độ rộng của match_parent(hoặc không được dùng nữa fill_parent), chúng loại trừ lẫn nhau. Bạn cần sử dụng wrap_content.

Ngoài ra, bất kỳ bố cục nào chỉ có một con có thể bị xóa, ví dụ: bạn có thể đơn giản hóa bố cục hiện tại của mình thành:

<?xml version="1.0" encoding="utf-8"?>
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:maxWidth="50dip"/>
30 hữu ích 4 bình luận chia sẻ
16

Nếu bất kỳ ai muốn hành vi kết hợp của match_parentmaxWidthtrong một bố cục cha: Bạn có thể sử dụng ConstraintLayout và ràng buộc con theo các giới hạn cha được kết hợp với layout_constraintWidth_max.

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <EditText 
        android:layout_width="0dp"
        android:layout_height="wrap_content"                
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintWidth_max="480dp"/>
</androidx.constraintlayout.widget.ConstraintLayout>
16 hữu ích 0 bình luận chia sẻ
8

Bạn có thể đạt được hiệu ứng tương tự bằng cách sử dụng các bố cục khác nhau cho các màn hình khác nhau. Giả sử bạn muốn của mình EditTextlấp đầy chiều rộng có sẵn nhưng không quá 480dp. Xác định bố cục của bạn như sau:

layout / my_layout.xml:

<?xml version="1.0" encoding="utf-8"?>
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"/>

layout-w480dp / my_layout.xml: (chọn bạn có chiều rộng tối đa làm định mức tại đây)

<?xml version="1.0" encoding="utf-8"?>
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="480dp"
          android:layout_height="wrap_content"/>
8 hữu ích 0 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ android android-layout user-interface , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading