2014-10-24 3 views
18

У меня есть активность в моем манифесте, который я использовал для стиля с помощью темы диалога. Я не могу найти, как заменить это в библиотеке AppCompat.Использование темы диалога на основе материалов с AppCompat

<activity 
      android:name=".LoginActivity" 
      android:theme="@android:styles/Theme.Holo.Dialog" 
      android:configChanges="orientation|screenSize|keyboardHidden" 
      android:label="Login" > 

Есть ли на основе материала эквивалент?

+0

увидеть мой ответ на ваш другой вопрос, который будет вероятно, сработает для вас http://stackoverflow.com/questions/26595128/appcompat-dialog-theme-with-mis-colored-titlebar -bug/27069935 – Mick

ответ

24

Там нет материала на основе темы для диалога в AppCompat еще см here

Will appcompat automatically theme dialogs to look like the Lollipop version?

Response

Not yet, but it's on the todo list.

Update:

В версии 22.1 из Support Library теперь вы можете получить материальный диалог стиля с помощью AppCompatDialog

+0

Интересно, случится ли это до официального выпуска 3 ноября – KickingLettuce

+0

Поскольку Google еще не опубликовал такую ​​вещь, я создал для этого библиотеку: github.com/AndroidDeveloperLB/MaterialStuffLibrary –

+0

@KickingLettuce из любопытства , где можно увидеть будущие даты выпуска AppCompat и, возможно, заметки о том, что изменилось? Я не могу найти ничего подобного. – natario

0

Это должно работать для вас: https://github.com/afollestad/material-dialogs

Я использовал его, чтобы построить диалог в DialogFragment с прикладными пользовательскими стилями. Прекрасно работает.

+0

, если бы вы могли изменить фон заголовка на диалоги? – Daniel

+0

Для названия нет фона, это фон всего: https: // github.com/hyperboria/android/pull/21 (снизу) – benhylau

+0

Я смог это сделать. – Daniel

52

Java код

AlertDialog.Builder builder = 
        new AlertDialog.Builder(SecondActivity.this, R.style.AppCompatAlertDialogStyle); 
      builder.setTitle("SCRUM"); 
      builder.setMessage("In the SCRUM methodology a sprint is the basic unit of development. Each sprint is preceded by a planning meeting, where the tasks for the sprint are identified and an estimated commitment for the sprint goal is made, and followed by a review or retrospective meeting where the progress is reviewed and lessons for the next sprint are identified. During each sprint, the team creates finished portions of a product....."); 
      builder.setPositiveButton("OK", null);//second parameter used for onclicklistener 
      builder.setNegativeButton("Cancel", null); 
      builder.show(); 

Используйте эту тему

<style name="AppCompatAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert"> 
    <item name="colorAccent">#FFCC00</item> 
    <item name="android:textColorPrimary">#FFFFFF</item> 
    <item name="android:background">#5fa3d0</item> 
</style> 

Импорт поддержки v7 оповещения диалоговое

import android.support.v7.app.AlertDialog; 

выход, как это,

enter image description here

+0

Ницца !! Я использую список в диалоговом окне предупреждения, похоже, не может изменить цвет текста для элемента списка? Я попробовал цвет текста вторичный и список Item, но не имеет никакого эффекта! – User3

+0

Что делать, если диалог расширяет диалоговое окно DialogFragment, как обрабатывать ошибку «NullPointerException: попытка вызвать виртуальный метод» void android.support.v4.widget.NestedScrollView.setFocusable (boolean) «на ссылке на нулевой объект»? –

+1

О, маннан! Вы amazingggggggggggg .. Где вы были последние 3 часа, я пытался найти вас: D. –

7

Используйте последнюю библиотеку AppCompat

compile 'com.android.support:appcompat-v7:23.2.1'// or any version greater than 22.1 

и в манифесте использовать следующую тему

android:theme="@style/Theme.AppCompat.Light.Dialog" 
Смежные вопросы