¿Cómo evitar los pesos anidados?
Tengo un diseño xml para introducir un código PIN:
<?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="fill_parent" android:background="#FF000000" android:orientation="vertical" android:weightSum="1" > <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_margin="5dp" android:layout_weight="0.2" android:background="@android:drawable/edit_text" android:gravity="center_vertical" android:orientation="horizontal" > <EditText android:id="@+id/pinDisplay" android:layout_width="0dip" android:layout_height="fill_parent" android:layout_weight="0.85" android:background="@null" /> <ImageButton android:id="@+id/backspace" style="@android:style/Widget.Button" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_gravity="center_vertical" android:layout_margin="3dp" android:layout_weight="0.15" android:gravity="center" android:src="@android:drawable/ic_input_delete" /> </LinearLayout> <!-- Keypad section --> <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="0.8" android:baselineAligned="false" android:orientation="vertical" > <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_marginLeft="5dip" android:layout_marginRight="4dip" android:layout_weight="1" android:orientation="horizontal" > <Button android:id="@+id/one" android:layout_width="0sp" android:layout_height="fill_parent" android:layout_weight="1" android:text="1" android:textAppearance="@android:attr/text" /> <Button android:id="@+id/two" android:layout_width="0sp" android:layout_height="fill_parent" android:layout_weight="1" android:text="2" /> <Button android:id="@+id/three" android:layout_width="0sp" android:layout_height="fill_parent" android:layout_weight="1" android:text="3" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="0sp" android:layout_marginLeft="5dip" android:layout_marginRight="4dip" android:layout_weight="1" android:orientation="horizontal" > <Button android:id="@+id/four" android:layout_width="0sp" android:layout_height="fill_parent" android:layout_weight="1" android:text="4" /> <Button android:id="@+id/five" android:layout_width="0sp" android:layout_height="fill_parent" android:layout_weight="1" android:text="5" /> <Button android:id="@+id/six" android:layout_width="0sp" android:layout_height="fill_parent" android:layout_weight="1" android:text="6" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="0sp" android:layout_marginLeft="5dip" android:layout_marginRight="4dip" android:layout_weight="1" android:orientation="horizontal" > <Button android:id="@+id/seven" android:layout_width="0sp" android:layout_height="fill_parent" android:layout_weight="1" android:text="7" /> <Button android:id="@+id/eight" android:layout_width="0sp" android:layout_height="fill_parent" android:layout_weight="1" android:text="8" /> <Button android:id="@+id/nine" android:layout_width="0sp" android:layout_height="fill_parent" android:layout_weight="1" android:text="9" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="0sp" android:layout_marginBottom="10dip" android:layout_marginLeft="5dip" android:layout_marginRight="4dip" android:layout_weight="1" android:orientation="horizontal" > <Button android:id="@+id/ok" android:layout_width="0sp" android:layout_height="fill_parent" android:layout_weight="1" android:enabled="false" android:text="OK" android:textColor="#B8B8B8" /> <Button android:id="@+id/zero" android:layout_width="0sp" android:layout_height="fill_parent" android:layout_weight="1" android:text="0" /> <Button android:id="@+id/clear" android:layout_width="0sp" android:layout_height="fill_parent" android:layout_weight="1" android:text="Clear" /> </LinearLayout> </LinearLayout> </LinearLayout>
El diseño está bien, pero tengo un montón de advertencias Lint sobre pesas anidadas.
- Cómo alinear un conjunto de botón a la parte inferior de la pantalla en android
- Imagen de fondo de Android para llenar la pantalla
- Desplazar la columna de Gridview hacia arriba y hacia abajo al tocar esa columna
- ¿Cómo mostrar un texto verticalmente o rotar un TextView en el archivo XML de diseño?
- ¿Cuáles son las diferencias entre LinearLayout, RelativeLayout y AbsoluteLayout?
Pesos anidados son malos para el rendimiento
Realmente no me doy cuenta de la carga de diseño lento o nada. ¿Qué puedo hacer para evitar pesas anidadas? ¿O debo dejarlo como es?
- Cómo mostrar la leyenda en el lado derecho de piechart en achartengine android
- ¿Cómo puedo crear un AttributeSet de un style.xml?
- Agregue dos puntos al teclado InputType.TYPE_CLASS_NUMBER
- SwipeRefreshLayout detecta un evento de desplaza hacia abajo antes de iniciar onRefresh ()
- No se agrega el archivo de diseño xml de Android a R.java
- Navegación translúcida sin presentación que se muestra debajo de la barra de estado
- Android Color - ¿Cuánto más oscuro es primaryColorDark que primaryColor?
- ¿Cómo puedo obtener botones de acción con diseños personalizados para que se llamen como botones de acción estándar en Android 3.0+
Puede utilizar RelativeLayout para evitar los pesos anidados.
Los pesos anidados son malos para el rendimiento porque el número de mediciones aumenta exponencialmente con cada uno anidado.
En general, debe intentar utilizar un RelativeLayout en lugar de anidar muchos LinearLayouts.
De la documentación :
Nota: Aunque puede anidar uno o más diseños dentro de otro diseño para lograr su diseño de interfaz de usuario, debe esforzarse por mantener la jerarquía de diseño lo más superficial posible. Su diseño se dibuja más rápido si tiene menos diseños anidados (una jerarquía de vista amplia es mejor que una jerarquía de vista profunda).
Pero cuando usted necesita pesos, como ahora, un RelativeLayout no le ayudaría mucho; En su lugar, sugiero usar un TableLayout para su teclado, para reducir el número de diseños anidados.
- Mantener un servicio en ejecución durante los cambios de orientación
- Cómo cambiar el color de texto del botón de Android de forma global en el tema