2013-08-09 13 views
6

Jestem początkującym programistą i mam problem z wyłączaniem animacji okna dialogowego (pojawianie się i zanikanie).Wyłączenie (zanikanie i zanikanie) animacja okna dialogowego

starałem się do niego przy użyciu pusty styl i ustawić go zmieniając

final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 

do

final AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(getActivity(), R.style.NoAnimation)); 

Tło oknie dialogowym stało się czarne, pozytywne i przycisk negatice zmienił się < 2.1 - 4.0) w stylu android, ale zanikanie i zanikanie efektu animacji pozostało ...

Mój styl:

<style name="DialogNoAnimation"> 
    <item name="android:windowEnterAnimation">@anim/enter</item> 
    <item name="android:windowExitAnimation">@anim/exit</item> 
</style> 

<style name="NoAnimation" parent="@android:style/Theme.Dialog"> 
    <item name="android:windowAnimationStyle">@style/DialogNoAnimation</item> 
</style> 

Jakieś pomysły, w jaki sposób mogę wyeliminować tę animację?

+0

Have próbowałeś dodać '@ null' zamiast animacji wejścia i wyjścia? –

+0

lub ' @ null' –

+0

Dokładny taki sam efekt jak w przypadku @ anim/enter i @ anim/exit. Mam na myśli @ null i @ null lub @ null – Stramek

Odpowiedz

6

Wreszcie sukces!

Res/Anim/enter.xml

<?xml version="1.0" encoding="utf-8"?> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
android:duration="@android:integer/config_shortAnimTime"/> 

Res/anim/exit.xml

<?xml version="1.0" encoding="utf-8"?> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:duration="@android:integer/config_shortAnimTime"/> 

Res// wartości styles.xml

<style name="DialogNoAnimation"> 
    <item name="android:windowEnterAnimation">@anim/enter</item> 
    <item name="android:windowExitAnimation">@anim/exit</item> 
</style> 

src/[dialog_box_class ] .java

@Override 
public void onStart() 
{ 
    super.onStart(); 
    if (getDialog() == null) 
    return; 
    getDialog().getWindow().setWindowAnimations(R.style.DialogNoAnimation); 
} 
1

oto proste rozwiązanie:

zdefiniować niestandardowy styl na styles.xml:

<style name="Dialog"> 
    <item name="android:windowAnimationStyle">@null</item> 
    //... more items 
</style> 

Tworzenie nowego budowniczego z niestandardowego stylu:

AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.Dialog); 
builder.setTitle("Dialog title"); 
builder.show(); 

cieszyć