Ver la Versión Completa : Como se cambia el style de un layout?
Estaba programando ayer en clase y me pregunto un compañero como se hacian los styles, que el iba al layout activity_main.xml en modo grafico y le daba arriba donde esta la estrellita en azul y cambiaba al Holo.Black pero que no le funcionaba, y que podia cambiar a cualquiera que solo le cambia en el visor de eclipse, una vez lo ejecuta en el movil o el emulador ya no le aparece ese style que ha puesto.
Lo estuve mirando ayer y hoy pero no encuentro nada, veo que esta el styles.xml que es para definir tus propios themes y que esta el que usa la app por defecto, pero he cambiado ese de
<style name="AppTheme" parent="android:Theme.Light" />
a
<style name="AppTheme" parent="android:Theme.Holo" />
y aunque no me da error no me funciona, alguien sabe como se usan esos styles?
EDIT: Acabo de conseguir cambiar los styles de todas las activitys, lo he hecho recurriendo a AndroidManifest.xml y en Theme dandole a System Resources
sgsbarna
09/10/12, 16:37:01
Estaba programando ayer en clase y me pregunto un compañero como se hacian los styles, que el iba al layout activity_main.xml en modo grafico y le daba arriba donde esta la estrellita en azul y cambiaba al Holo.Black pero que no le funcionaba, y que podia cambiar a cualquiera que solo le cambia en el visor de eclipse, una vez lo ejecuta en el movil o el emulador ya no le aparece ese style que ha puesto.
Lo estuve mirando ayer y hoy pero no encuentro nada, veo que esta el styles.xml que es para definir tus propios themes y que esta el que usa la app por defecto, pero he cambiado ese de
<style name="AppTheme" parent="android:Theme.Light" />
a
<style name="AppTheme" parent="android:Theme.Holo" />
y aunque no me da error no me funciona, alguien sabe como se usan esos styles?
EDIT: Acabo de conseguir cambiar los styles de todas las activitys, lo he hecho recurriendo a AndroidManifest.xml y en Theme dandole a System Resources
Eso mismo... yo lo cambio primero en la estrellita para diseñar correctamente... pero descubrí que si no lo cambias en el manifiesto de nada sirve...
Pero en el AndroidManifest lo cambias para toda la app, y si tu quieres cambiar por activitys, es decir que cada layout tenga un theme distinto no se puede de esta forma.
He estado investigando, y solo he visto para hacerlo desde java que seria haciendo un metodo this.setTheme(R.style.NOMBRE_DEL_ESTILO) y poniendolo dentro del metodo onCreate del layout, y delante del .setContentView , si lo pones despues entonces no funciona porque ya has dicho el layout que vas a mostrar.
El unico problema de esta forma es que tienes que ir al Styles.xml y crear un Style con el estilo que quieras, en mi caso he usado uno que nos da Google y es android:Theme.Holo.Light.Dialog.NoActionBar con lo que te queda asi:
<style name="ThemeCreditos" parent="android:Theme.Holo.Light.Dialog.NoActionBar" />
Y luego en el .java del layout tienes que poner esto:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Seteamos el theme de la activity antes de mandar visualizar el layout
this.setTheme(R.style.ThemeCreditos);
setContentView(R.layout.activity_main);
}
Y con eso ya te funciona pero para eso me he tirado unas 2h, pero por XML todavia no he visto como se hace o si es posible, en el RelativeLayout ahi una propiedad que es style pero pone que es para un estilo custom, es decir para este caso no sirve porque tienes que referenciar a un style del styles.xml ...
Acabo de probarlo y no funciona, es decir pones como un atributo del layout style="@style/ThemeCreditos" y deberia ponertelo pero no lo hace, osea por ahora solo lo consigo hacer por el .java
SOLUCIONADO
Justo acabo de encontrar la solucion cuando lo iba a dejar, tambien se modifica el theme de cada activity en el AndroidManifest y se hace en las etiquetas <activity></activity> y quedaria asi:
<activity
android:name="AcercaDe"
android:theme="@android:style/Theme.Holo.Light.Dialog.NoActionBar" >
</activity>
vBulletin® v3.8.1, Copyright ©2000-2025, Jelsoft Enterprises Ltd.