versiones sistema pie operativo developer definicion caracteristicas android

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>