He visto varios ejemplos que usan android: layout_height = "0px" o "0dip" pero no entiendo el impacto de esto. Parece que haría que el diseño tenga 0 píxeles de alto. ¿Se ha mitigado el valor pero hay algún otro factor como el "peso" o la altura de las vistas principales?En los diseños de Android cuál es el efecto/significado de layout_height = "0dip"
Respuesta
Sí tienes razón en el peso, cuando se desea que la anchura o la altura a ser controlados por el peso de su convención para fijar ese valor a 0dip y dejar que el peso controlar el valor real. Aunque estoy bastante seguro de que 0 es arbitrario aquí, podrías poner cualquier cosa, pero poner 0 hace que tu intención sea más clara.
Cuando se utiliza un LinearLayout si se establece la layout_weight
a un valor distinto de cero y se establece el layout_height
(o layout_width
) para 0PX o 0dip entonces el LinearLayout distribuye cualquier espacio no asignado a lo largo del eje apropiado basado en los pesos. Entonces, por ejemplo, si observa el diseño debajo de la Vista con id * gestures_overlay * tiene layout_height
0dip y layout_weight
1 por lo que el LinearLayout padre lo estira para llenar el espacio vertical disponible entre los 2 LinearLayouts circundantes. Si hubiera otra Vista con el mismo 0dip layout_height
y un valor de layout_weight
, entonces compartirían el espacio vertical en función de sus valores de peso.
<?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:orientation="vertical">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="6dip"
android:text="@string/prompt_gesture_name"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/gesture_name"
android:layout_width="0dip"
android:layout_weight="1.0"
android:layout_height="wrap_content"
android:maxLength="40"
android:singleLine="true" />
</LinearLayout>
<android.gesture.GestureOverlayView
android:id="@+id/gestures_overlay"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1.0"
android:gestureStrokeType="multiple" />
<LinearLayout
style="@android:style/ButtonBar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/done"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:enabled="false"
android:onClick="addGesture"
android:text="@string/button_done" />
<Button
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:onClick="cancelGesture"
android:text="@string/button_discard" />
</LinearLayout>
</LinearLayout>
¿Cuál es el significado de peso cero? owr instructor en curso de Android haga esta pregunta. ¿Cuál es el uso del peso cero en el diseño de la interfaz de usuario de Android? –
Un ejemplo relevante de los documentos oficiales de desarrolladores (http://developer.android.com/guide/topics/ui/layout/linear.html): niños
de igual ponderación
para crear una disposición lineal en la que cada niño utiliza la misma cantidad de espacio en la pantalla, ajuste el android: layout_height de cada vista a "0dp" (para un diseño vertical) o el android: layout_width de cada vista a "0dp" (para un diseño horizontal). Luego configure el android: layout_weight de cada vista en "1".
- 1. Android layout_width & layout_height, ¿cómo funciona?
- 2. Diseños de Android en subcarpetas
- 3. Colapsando los márgenes en los diseños de Android
- 4. ¿Cuál es la mejor manera de separar diferentes lógicas de programación para diferentes diseños en Android?
- 5. ¿Qué orden de diseños anidados es más eficiente en Android
- 6. Cómo arreglar el tamaño de los diseños
- 7. Este LinearLayout debe usar android: layout_height = "wrap_content"?
- 8. Android anchuras diferentes de diseños en ViewPager
- 9. ¿Qué significa layout_height = "0dp"?
- 10. Android: ¿Los diseños se "deslizan" fuera de la pantalla?
- 11. ¿Hay alguna manera de animar diseños? [Android]?
- 12. ImageView en el diseño XML de Android con layout_height = "wrap_content" tiene relleno superior e inferior
- 13. ¿Cuál es la diferencia entre los distintos diseños de blobstorage de ZODB?
- 14. Android y admite diseños de pantallas múltiples
- 15. Android Organizar diseños en carpetas secundarias
- 16. iOS equivalente a Fragmentos/Diseños de Android
- 17. ¿Necesito 14 diseños diferentes para admitir todos los dispositivos Android?
- 18. ¿Cuál es el parámetro icicle de Android?
- 19. Incluyendo actividades de Android (y sus diseños) en archivos JAR
- 20. Alternar entre 2 diseños en la actividad de Android
- 21. ¿Cuál es el equivalente de Html.fromHtml() de Android en iOS?
- 22. En aplicaciones de Android, ¿cuál es el papel de "R.java"?
- 23. layout_height = "fill_parent" en RelativeLayout no funciona
- 24. EditarTexto centrarse incoherente en los diseños
- 25. LinearLayout no establece el atributo layout_height requerido
- 26. ¿Cuál es el mecanismo detrás de startActivityForResult() en Android?
- 27. ¿Cuál es el uso de SQLiteDatabase.CursorFactory en Android?
- 28. ¿Cuál es la diferencia entre "? Android:" y "@android:" en un archivo xml de diseño de Android?
- 29. ¿Cuál es el punto de los punteros?
- 30. ¿Cuál es el costo de entrada/membresía en Android Marketplace?
estableciendo el 'layout_width' o' layout_height' en '0px' o' 0dip' es bastante más para el rendimiento en tiempo de ejecución en lugar de la convención. Ajustándolo a '0px' (o' 0dip') omitirá los ciclos de CPU necesarios para la inicialización inicial y el ancho/alto de la vista se ajustará según sea necesario. En resumen, el tiempo de ejecución solo tendrá que calcular la altura/ancho una vez en lugar de 2 veces ... –
No realmente, porque puede no funcionar si se guarda fill_parent. –