es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El texto en un vista personalizada no cambia de color en el modo nocturno.

Utilizando:

com.google.android.material:material:1.4.0

Si tengo un archivo xml de diseño en un fragmento/actividad con un TextView:

Si cambio entre el modo claro/oscuro, el color del texto cambia adecuadamente.

Sin embargo, si creo una vista personalizada:

class MyView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyle: Int = 0,
defStyleRes: Int = 0
) : LinearLayout(context, attrs, defStyle, defStyleRes) { … }

Y esa vista contiene el mismo TextView, el color del texto no cambia en el modo nocturno.

Inicializo la vista desde un fragmento:

new MyView(this.getActivity().getBaseContext());

También he intentado aplicar directamente el tema base:

new MyView(this.getActivity().getBaseContext(), null, R.id.AppTheme);

Además, por alguna razón extraña, puedo resolver este problema creando mis propios colores de texto en las carpetas apropiadas de luz/oscuridad, y eso recoge el cambio entre luz/oscuridad:

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para utilizar los Componentes de Material con la versión 1.4.0 en tu vista personalizada, debes aplicar el tema base a la vista. Puedes hacerlo pasando R.id.AppTheme como parámetro defStyle al crear la vista.

    Además, puedes crear tus propios colores de texto en las carpetas de luz/oscuridad apropiadas y establecer el atributo android:textColor al color personalizado.

Comments are closed.