Líneas de borde para celdas en GridLayout, TableLayout o GridView?

Estoy tratando de crear una tabla / cuadrícula para algunos elementos dentro de mi aplicación y me gustaría tener un borde alrededor de cada celda para dividir los elementos y tener una asociación coherente de la configuración con el elemento. Esta aplicación se utilizará en un entorno industrial donde puede haber personas no familiarizadas con Android que necesitan utilizar esto, tratando de hacerlo lo más fácil posible.

La tabla / cuadrícula contendrá TextView , EditText , Spinner y Button , y también será desplazable (a través de ScrollView padre).

He leído sobre el GridView y encontró que (parece) para sólo ser capaz de obtener los elementos mediante programación, por favor, corrija si estoy equivocado. Sentí que esto era innecesario, ya que sé qué elementos quiero y dónde. Además, no he probado agregar elementos a un diseño de forma programática todavía, así que pensé que probaría las otras opciones primero. Además, la documentación de GridView no dice de una manera u otra si las líneas de borde se muestran automáticamente, o si se puede hacer que se muestren en absoluto.

Comencé con un TableLayout y pude conseguir todo excepto las líneas de la frontera para trabajar. Intenté android:divider para conseguir las líneas pero eso no trabajó. Un pensamiento que tenía era crear un manojo de TextView s con fondos negros y ~ 2dp anchuras / alturas para hacer mis propias líneas de la frontera. Esto se siente como un gran desperdicio. También leí la documentación de TableLayout y encontré esto: "Los contenedores de TableLayout no muestran líneas de borde para sus filas, columnas o celdas."

Entonces intenté el GridLayout y tenía los mismos resultados que el TableLayout . Traté de padding y los margins , ni funcionó. Además, la documentación GridLayout establece: "La cuadrícula está compuesta de un conjunto de líneas infinitamente finas que separan el área de visualización en celdas".

Mis preguntas son:

  1. ¿Hay un attirbute que me perdí en TableLayout o GridLayout que me dará líneas de frontera a través del xml?

  2. Si no, ¿entonces el GridView me dará las líneas que quiero?

  3. ¿Podré agregar todos los elementos mencionados anteriormente que quiero al GridView ?

¿Hay un attirbute que me perdí en TableLayout o GridLayout que me dará líneas de frontera a través del xml?

No.

Si no, ¿entonces el GridView me dará las líneas que quiero?

No.

¿Podré agregar todos los elementos mencionados anteriormente que quiero al GridView?

Sí, aunque lo bien que funcione un Spinner , no puedo decirlo.

La forma más sencilla, fuera de la parte superior de mi cabeza, para darle las líneas que busca es tener cada celda de TableLayout o GridLayout algún contenedor que contenga el widget (s) para esa celda, donde le da al contenedor un fondo que es Tu línea Un ShapeDrawable podría ser definido en XML para ese fondo, que será agradablemente redimensionable basado en los requisitos reales de la célula.

En realidad era capaz de lograr el aspecto deseado al establecer el android:background="#000000" dentro de la vista GridLayout y luego en los elementos secundarios establecí el android:background="#8CDD81" (sólo un poco de color verde) y combinado con android:layout_margin="2dp" Pude obtener las líneas de "cuadrícula" que quería. Gracias a CommonsWare, sin embargo, por conseguirme pensar en una nueva dirección que se convirtió en una solución.

EDIT: Esto no funciona como se anticipó. Necesitas el android:layout_alignLeft/Right que sólo están disponibles a través de RelativeLayout para obtener sólo el ancho correcto en los elementos secundarios. No has probado esto todavía usando esta idea, child items dentro de RelativeLayout dentro de GridLayout .

  • Hacer células de igual anchura y altura para llenar la tabla
  • ¿Cuál es el equivalente de "colspan" en un Android TableLayout?
  • Cómo combinar fila en una celda en la disposición de la tabla en android, dinámicamente?
  • Disposición de respuesta de Android
  • Agregar espacio entre columnas de un TableLayout
  • Crear un diseño chatView en android
  • Android - Tabla de estilos TableLayout
  • Las filas añadidas dinámicamente en tablelayout no son visibles
  • Grilla de datos completamente funcional en Android
  • Datos dinámicamente de datos de tabla de Android
  • Cómo configurar la columna de tabla en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.