android - sistema - maxWidth no funciona con fill_parent
android sistema operativo (3)
El atributo maxWidth
no tiene efecto en un ancho de match_parent
(o el obsoleto fill_parent
), se excluyen mutuamente. Necesitas usar wrap_content
.
También es probable que se pueda eliminar cualquier diseño que solo tenga un hijo, por ejemplo, puede simplificar su diseño actual para:
<?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"/>
Cuando se usa fill_parent
, maxWidth
no tiene efecto.
<?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>
Puede lograr el mismo efecto utilizando diferentes diseños para diferentes pantallas. Digamos que quiere que su EditText
llene el ancho disponible pero no más de 480dp. Difine sus diseños de la siguiente manera:
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: (elige tu ancho máximo como el calificador aquí)
<?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"/>
Si alguien quiere el comportamiento combinado de match_parent
y maxWidth
en un solo diseño: puede usar ConstraintLayout y restringir al hijo por los límites principales combinados con 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>