Textview: usando el estilo de título de diálogo: @android: style / TextAppearance.DialogWindowTitle
Actualmente estoy intentando construir mi propio tema DialogFragment.
Uno de mis requisitos es usar un icono a la derecha del título.
- AlertDialog con vista personalizada: redimensionar para ajustar el contenido de la vista
- Cómo configurar el título de DialogFragment?
- Cómo mostrar DialogFragment de Fragment en actionBar android
- DialogFrag # show () de un lanzamiento de fragmentos "IllegalStateException: no se puede realizar esta acción después onSaveInstanceState"
- Cómo hacer DialogFragment modal?
Primera idea
Simplemente usando:
this.getDialog().getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.dialog_title);
Pero desafortunadamente, esta línea de código no tiene ningún resultado.
Segunda idea
Proporcionar mi propio diseño -this.setContentView () – con este textview:
<TextView android:id="@+id/tvTitle" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="From XML" android:textAppearance="@android:style/TextAppearance.DialogWindowTitle" />
Esto funciona, porque puedo leer el texto, pero todavía escrito en fuente negra predeterminada.
Esperaba TextAppearance.DialogWindowTitle para dar a mi texto un appareance del título (azul en Holo con tamaño de fuente grande)
Alguna idea o sugerencia?
EDITAR
Esto casi hizo el truco:
<style name="Dialog" parent="@android:style/Theme.Dialog"> <item name="android:windowTitleStyle">@style/MyOwnDialogTitle</item> </style> <style name="MyOwnDialogTitle"> <item name="android:drawableRight">@drawable/MyRightImage</item> </style>
Pero android: drawableRight acaba de romper el diseño del título:
SEGUNDO EDITOR
Esto es un poco mejor:
<style name="Dialog" parent="@android:style/Theme.Dialog"> <item name="android:windowTitleStyle">@style/MyOwnDialogTitle</item> </style> <style name="MyOwnDialogTitle"> <item name="android:textAppearance">@android:style/TextAppearance.DialogWindowTitle</item> <item name="android:drawableRight">@drawable/icon</item> </style>
- La mejor manera de manejar el comportamiento de espalda en DialogFragment?
- DialogFragment y fuerza para mostrar el teclado
- Selecciona la imagen de la galería que no funciona en Fragment Class en Android
- Llamar a DialogFragment del fragmento
- Custom DialogFragment con diferentes animaciones para diferentes orientaciones
- Android DialogFragment con tema de AppCompat tema
- ¿Debo usar un PopupWindow o DialogFragment para aceptar la entrada?
- Cambiar la altura del diálogo personalizado en el fragmento de diálogo
Tal vez usted puede extender el estilo por defecto de esta manera:
res/values/dialogstyles.xml
<?xml version="1.0" encoding="utf-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android"> <style name="Dialog" parent="@android:style/Theme.Dialog"> <item name="android:windowTitleStyle">@style/MyOwnDialogTitle</item> </style> <style name="MyOwnDialogTitle"> <item name="android:drawableRight">@drawable/MyRightImage</item> </style> </resources>
res/values-v11/dialogstyles.xml
<?xml version="1.0" encoding="utf-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android"> <style name="Dialog" parent="@android:style/Theme.Holo.Dialog"> <item name="android:windowTitleStyle">@style/MyOwnDialogTitle</item> </style> </resources>
Y sobreescriba la función onCreate de onCreate
:
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setStyle(DialogFragment.STYLE_NORMAL, R.style.Dialog); }
Ejemplo de Trabajo
Estoy buscando su primer requisito. Pero para el segundo requisito, ¿por qué no intenta cambiar el color al estilo de TextAppearance.DialogWindowTitle con su estilo personalizado?
Acabo de comprobar los recursos de Android donde hay estilo como a continuación:
<style name="DialogWindowTitle"> <item name="android:maxLines">1</item> <item name="android:scrollHorizontally">true</item> <item name="android:textAppearance">@style/TextAppearance.DialogWindowTitle</item> </style>
Y para el estilo TextAppearance.DialogWindowTitle:
<style name="TextAppearance.DialogWindowTitle"> <item name="android:textSize">18sp</item> <item name="android:textStyle">normal</item> <item name="android:textColor">?textColorPrimary</item> </style>
Ahora, puede cambiar el color de su estilo TextAppearance.DialogWindowTitle y hacer lo que quiera.
Espero que tengas el punto.
No dude en comentar.
¿Has intentado usar @android:style/Theme.Holo.Light.Dialog
como tu parent
en estilos? Esto funcionará sólo en Android 3+ porque en la versión anterior no hay tema Holo, pero puedes crear tu propio para que parezca a las versiones inferiores de Android.
- Error: Error de ejecución para la tarea ': app: fabricGenerateResourcesDebug'. > Error de Crashlytics Developer Tools
- Custom attr get devuelve valores inválidos