Open hmody23 opened 2 years ago
Yo lo conseguí de esta forma. Haces lo que te indica la libreria: PaperOnboardingPage scr1 = new PaperOnboardingPage("Hotels", "All hotels and hostels are sorted by hospitality rating", Color.parseColor("#678FB4"), R.drawable.hotels, R.drawable.key); PaperOnboardingPage scr2 = new PaperOnboardingPage("Banks", "We carefully verify all banks before add them into the app", Color.parseColor("#65B0B4"), R.drawable.banks, R.drawable.wallet); PaperOnboardingPage scr3 = new PaperOnboardingPage("Stores", "All local stores are categorized for your convenience", Color.parseColor("#9B90BC"), R.drawable.stores, R.drawable.shopping_cart);
ArrayList
PaperOnboardingFragment onBoardingFragment = PaperOnboardingFragment.newInstance(elements);
Despues haces esto: // Listener para detectar cambios de página onBoardingFragment.setOnChangeListener(new PaperOnboardingOnChangeListener() { @Override public void onPageChanged(int oldElementIndex, int newElementIndex) { // Cambiar el color del texto de la nueva página View currentPageView = onBoardingFragment.getView(); // Obtén la vista actual del fragmento if (currentPageView != null) { changeTextColor(currentPageView, Color.RED); // Cambia el color del texto } } });
que eso lo que hará es cambiar el texto cada vez que cambies de página, pero la primera no se cambiará el color por lo que tienes que hacer lo siguiente, pones lo que sigue que te indica la libreria: FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.add(R.id.fragment_container, onBoardingFragment); fragmentTransaction.commit();
y seguido haces esto: // Usar ViewTreeObserver para esperar hasta que se dibuje la vista view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
System.out.println("Las vistas han sido creadas. Ahora puedes intentar cambiar colores.");
// Cambiar el color del texto a rojo, por ejemplo
changeTextColor(view, Color.RED);
}
});
y te creas el siguiente método: private void changeTextColor(View view, int color) { // Verifica si es un TextView y no un Button if (view instanceof TextView && !(view instanceof Button)) { TextView textView = (TextView) view; textView.setTextColor(color); // Cambia el color del texto }
// Verificar si es un ViewGroup
if (view instanceof ViewGroup) {
ViewGroup group = (ViewGroup) view;
for (int i = 0; i < group.getChildCount(); i++) {
// Llamada recursiva para los hijos
changeTextColor(group.getChildAt(i), color);
}
}
}
en mi caso tengo esta condición !(view instanceof Button) para que no se aplique a un botón que he agregado.
Espero que os sirva de ayuda!!
how to change text color and text font in android??