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.

  • Ejemplos de diseño de Android que coinciden con las recomendaciones "Métricas y cuadrículas"
  • La mejor manera de ordenar los datos
  • ¿Cómo se crean Fragmentos de preferencias y preferencias en Android?
  • Android: HorizontalScrollView smoothScroll tiempo de animación
  • Escucha las llamadas entrantes a través de BroadcastReceiver, sin PhoneStateIntentReceiver o PhoneStateListener
  • Errores del indexador de Eclipse al usar STL con Android NDK
  • 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 MediaController intercepta todos los demás eventos táctiles
  • OnMenuItemSelected no se llama cuando la disposición se establece para el elemento de menú
  • Archivo de expansión apk no se descarga desde playstore
  • No se puede poner doble SharedPreferences
  • Appcompat v21 lanza java.lang.UnsupportedOperationException
  • Establecer ancho a wrap_content para TextView a través de código
  • 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.