Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Android: Aplicar diferentes temas a fragmentos de una actividad

Lo que quiero hacer:

Quiero que cada Fragmento de mi MainActivity utilice un tema diferente, de modo que la ActionBar tenga diferentes colores de fondo, dependiendo del Fragmento visible.

  • ¿Cuál es el color hexadecimal predeterminado de la barra de acción Holo.Light.DarkActionBar?
  • La aplicación de Android se abre desde los enlaces enviados por correo electrónico
  • Cómo devolver una matriz de JNI a Java?
  • TextView horizontal center en RelativeLayout
  • Android - ¿Qué es un progreso secundario en ProgressBar?
  • CollapsingToolbarLayout no reconoce el desplazamiento
  • La situación:

    He creado una MainActivity que utiliza las pestañas + Swipe Navegación. I Se han añadido 7 fichas (= 7 fragmentos). He creado un tema que debe aplicarse sólo al primer fragmento (fragment_main_1).

    Aquí el Tema:

    <resources xmlns:android="http://schemas.android.com/apk/res/android"> <style name="Blue" parent="android:Theme.Holo.Light"> <item name="android:actionBarStyle">@style/Blue.ActionBarStyle</item> </style> <style name="Blue.ActionBarStyle" parent="android:Widget.Holo.Light.ActionBar"> <item name="android:titleTextStyle">@style/Blue.ActionBar.TitleTextStyle</item> <item name="android:background">#33B5E5</item> </style> <style name="Blue.ActionBar.TitleTextStyle" parent="android:TextAppearance.Holo.Widget.ActionBar.Title"> <item name="android:textColor">#FFFFFF</item> </style> </resources> 

    Después de crear más 6 temas, debería ser posible desplazarse a través de las pestañas mientras que la barra de acción cambia su color de fondo automáticamente.

    Lo que no funcionó:

    Añadiendo esas líneas (que encontré aquí en stackoverflow) al Fragment1.java:

     // create ContextThemeWrapper from the original Activity Context with the custom theme final Context contextThemeWrapper = new ContextThemeWrapper(getActivity(), R.style.Blue); // clone the inflater using the ContextThemeWrapper LayoutInflater localInflater = inflater.cloneInContext(contextThemeWrapper); // inflate the layout using the cloned inflater, not default inflater return localInflater.inflate(R.layout.fragment_main_1,container, false); 

    Espero que pueda ayudarme 🙂 Gracias.

  • Android edittext en listview pierde el foco en llamar notificydatachanged
  • Cuándo usar CheckBox y cuando cambie
  • Aumentar la velocidad del emulador de Android SDK
  • ¿Por qué no hay espacio entre CardViews en Lollipop?
  • No se pudo encontrar la información de instrumentación para: ComponentInfo {} - error intentando probar en IntelliJ con Gradle
  • ¿Por qué no es posible usar ViewPager dentro de un Fragmento? En realidad es
  • 2 Solutions collect form web for “Android: Aplicar diferentes temas a fragmentos de una actividad”

    El tema de configuración en manifiesto se suele usar para Actividad.

    Si desea establecer Tema para Fragmento, agregue el siguiente código en el onCreateView () del fragmento:

     @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // create ContextThemeWrapper from the original Activity Context with the custom theme final Context contextThemeWrapper = new ContextThemeWrapper(getActivity(), R.style.yourCustomTheme); // clone the inflater using the ContextThemeWrapper LayoutInflater localInflater = inflater.cloneInContext(contextThemeWrapper); // inflate the layout using the cloned inflater, not default inflater return localInflater.inflate(R.layout.yourLayout, container, false); } 

    [ Fuente ]

    Intente LayoutInflater localInflater = inflater.from(contextThemeWrapper); en lugar.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.