Que constructor a ser llamado para ver?
Tengo mi vista personalizada ampliada desde View
. Hay 3 constructores de vista:
-
View(Context context, AttributeSet attrs, int defStyle)
-
View(Context context, AttributeSet attrs)
-
View(Context context)
De mi actividad llamo std.setContentView(R.layout.main)
. El segundo constructor se llama en mi opinión. ¿Por qué el segundo? ¿Cómo saber de antemano cuál será llamado y por qué?
- Forzar adjustPan en la actividad que contiene ScrollView
- Android studio AssertionError: No invocar waitForSmartMode desde dentro de la acción de lectura en modo mudo
- Cómo agregar espacio entre dos vistas de texto
- El teclado Android se retrasa / es lento al cerrar usando adjustResize
- Disposiciones anidadas de Android
- RecyclerView con la imagen de fondo en la parte superior
- Error al inflacionar la clase android.support.design.widget.TabLayout
- Diseño de interfaz de usuario para móviles y tabletas
- ¿Puedo usar una definición de dos botones cambiando entre ellos?
- ¿Visión de lista de dos vías?
- ¿Cómo puedo agregar una sombra a la vista inferior de la hoja?
- Alinear el elemento en la esquina de la ronda Dispositivo de desgaste
- Diseño de la interfaz de usuario de Android: Soporta múltiples pantallas
Desde el sitio de desarrolladores de Android en la documentación de View:
public View (Context context)
Constructor simple a utilizar al crear una vista desde el código.
Así que este constructor es lo que puede utilizar para crear una vista en Java. No se llamará cuando infle de XML.
public View (Context context, AttributeSet attrs)
Constructor que se llama al inflar una vista desde XML. Esto se llama cuando se está construyendo una vista desde un archivo XML, proporcionando atributos que se especificaron en el archivo XML. Esta versión utiliza un estilo predeterminado de 0, por lo que los únicos valores de atributo aplicados son aquellos en el Tema del Contexto y el atributo especificado.
El método onFinishInflate () se llamará después de haber agregado todos los niños.
Por lo tanto, este constructor se llamará cuando infle una Vista desde XML cuando no especifique un estilo.
public View (Context context, AttributeSet attrs, int defStyle)
Realice la inflación de XML y aplique un estilo de base específico de clase. Este constructor de Vista permite que las subclases utilicen su propio estilo de base cuando se infla. Por ejemplo, el constructor de una clase Button llamaría a esta versión del constructor de clase super y suministraría R.attr.buttonStyle para defStyle; Esto permite que el estilo del botón del tema modifique todos los atributos de la vista base (en particular su fondo), así como los atributos de la clase Button.
Debe implementar todos estos constructores, pero puede poner todo el trabajo en el tercero llamando this(context, null)
y this(context, attrs, 0)
para los dos primeros, respectivamente.
- La aplicación de Android Wear no se instala a través del teléfono
- Ejecutar aplicaciones de Android en el navegador web