una - diagnostico android
¿Cómo hago que las Vistas llenen todo el ancho de sus elementos principales en mi aplicación de Android? (3)
Tengo el siguiente diseño definido para una de mis actividades:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout android:id="@+id/TableLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">
<TableRow android:id="@+id/TableRow01" android:layout_height="wrap_content" android:layout_width="fill_parent">
<EditText android:text="Resource Name" android:id="@+id/ResourceName" android:lines="1" android:isScrollContainer="false"></EditText>
</TableRow>
<TableRow android:id="@+id/TableRow02" android:layout_height="wrap_content" android:layout_width="fill_parent">
<Button android:id="@+id/Tile" android:text="Tile"></Button>
</TableRow>
</TableLayout>
El diseño se representa casi correctamente, el único problema es que mi cuadro de texto y mi botón no ocupan todo el ancho de sus respectivas filas.
Intenté especificar fill_parent
para las propiedades del ancho del diseño, pero en vano, solo ocupan aproximadamente la mitad de la pantalla.
La documentación general para Android hasta ahora ha sido excelente, ¡pero hay algunos escenarios como este en los que toco una pared invisible! ¡Gracias por toda la ayuda!
Pruebe esto en la definición de su TableRow:
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="1">
Use android:layout_width="match_parent"
en sus vistas de tablaRow.
Ahora tienes diferentes posibilidades en tu TableLayout para fijar el parámetro android:stretchColumns
a:
Value "*"
vistas de Value "*"
tendrán el mismo ancho y llenarán la fila que ocupa el mismo espacio
Value "0" or other integer
-> El primer elemento o elemento correspondiente con el número entero en una fila llenará la fila. La otra vista tendrá ancho de la misma manera que wrap_content
Ejemplo con una tabla de 3 tableRow con 2 vistas cada una:
Sin configurar android:stretchColumns
:
[|TextView|EditText| ]
[|TextView|EditText| ]
[|TextView|EditText| ]
android: stretchColumns = "*"
[| TextView | EditText |]
[| TextView | EditText |]
[| TextView | EditText |]
android: stretchColumns = "0"
[| TextView |EditText|]
[| TextView |EditText|]
[| TextView |EditText|]
android: stretchColumns = "1"
[|TextView| EditText |]
[|TextView| EditText |]
[|TextView| EditText |]
intente usar android: stretchColumns = "0" (cuando defina el TableLayout) o cual sea el índice de la columna que desee estirar.
Para más información: http://developer.android.com/guide/tutorials/views/hello-tablelayout.html