Reutilización de diseños en el caso de un AppWidget
Tengo varios diseños muy similares para mi AppWidget
, de hecho diferenciando solamente en la rotación de uno de los elementos de TextView
(selecciono el diseño apropiado basado en la orientación de la pantalla).
Así que en lugar de repetir las mismas cosas varias veces (odio la repetición), pensé en tratar de arreglar las cosas con Re-using Layouts con <include/>
.
- Android: Colocar ImageView en la superposición entre diseños
- Android VideoView pantalla completa con controles de barra de navegación superpuestos
- Añadir acción de botón en la notificación personalizada
- Pantalla débil e interacción de bloques con hojas de fondo
- Android Fragments ¿Debo reutilizar 1 fragmento o crear nuevas instancias?
El problema viene cuando estoy tratando de hacer referencia a elementos particulares del diseño por ID. Donde el elemento está en el diseño incluido xml, para las presentaciones no- AppLink, he utilizado un método descrito aquí , donde se utiliza un enfoque de dos niveles …
En el diseño "principal":
<include layout="@layout/my_layout" android:id="@+id/textview_layout" />
En el código:
TextView tv = (TextView)findViewById(R.id.textview_layout).findViewById(R.id.textview); tv.setText("test");
… donde el ID del TextView
en el diseño "child" es textview
. Por lo tanto, es un enfoque en dos etapas donde primero hace referencia a la View
contiene el TextView
que desea y, a continuación, referencia el TextView
fuera de eso.
Pero para AppWidgets, en lugar de tratar directamente con TextView
, tienes que hacer todo a través de RemoteViews
.
Así que en lugar de:
TextView textView = (TextView)findViewById(viewId); textView.setText("text");
Usted tendría que hacer:
remoteViews.setTextViewText(viewId, "text"); appWidgetManager.updateAppWidget(appWidgetId, remoteViews);
Dado que la interfaz en las RemoteViews
es pasar de una sola ID de vista (directa), ¿cómo haría referencia a un elemento en un archivo incluido?
- Un archivo .apk que instala dos aplicaciones
- ¿Cómo agregar la vista de la imagen en el lado derecho de la barra de acción?
- ¿Cómo obtener la altura y el ancho del dispositivo en Runtime?
- Botón de acción flotante Android API 19 (KitKat)
- Eclipse Android Editor de diseño gráfico roto
- Barra de herramientas "Oculto" visible debajo de la barra de estado
- Cómo establecer el ancho máximo para un diseño
- Creación de animaciones para imágenes de pequeñas a grandes cuando se desplaza verticalmente
Como dijiste, tu vista solo difiere con un cambio en la configuración. Teniendo en cuenta que usted está usando Android Studio, en la GUI Designing Tool Hay una opción llamada Ir al siguiente estado , mediante el uso de este puede generar el archivo de diseño de la tierra y configurarlo como desee, y también no tienes cambiar el id como android Decidir el diseño que va a utilizar, para que pueda acceder a su texto con el mismo id. Si desea acceder a cualquier vista que esté en la etiqueta de inclusión. Usted podría apenas utilizar el id que usted les ha dado. Espero que esto sea útil. Gracias
- Error al buscar la ventana – comportamientos diferentes desde la misma aplicación en el nexo de 2 galaxias
- Cómo ejecutar todas las pruebas (unitarias e instrumentadas) con un solo clic en Android Studio