使用fill_parent
时,maxWidth
无效。
<?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>
答案 0 :(得分:26)
属性maxWidth
对宽度match_parent
(或已弃用的fill_parent
)没有影响,它们是互斥的。您需要使用wrap_content
。
任何只有一个孩子的布局都可能被移除,例如,您可以将当前布局简化为:
<?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"/>
答案 1 :(得分:7)
对于不同的屏幕,您可以使用不同的布局实现相同的效果。假设您希望EditText
填充可用宽度但不超过480dp。区分您的布局如下:
<强>布局/ 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:(在此选择最大宽度作为限定符)
<?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"/>
答案 2 :(得分:0)
如果有人希望在单个布局中同时使用match_parent
和maxWidth
的组合行为:您可以使用ConstraintLayout和
通过与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"
android:padding="@dimen/login_unrelated_element_margin">
<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>