2013-08-14 6 views
6

Ho un AlertDialog:setCanceledOnTouchOutside non funziona Quando si tocca proprio vicino alla finestra al di fuori

 AlertDialog.Builder builder = new AlertDialog.Builder(context,  AlertDialog.THEME_HOLO_LIGHT); 
    ListAdapter adapter = new CustomDialogAdapter(context, itemsList); 
    builder.setAdapter(adapter, listener); 
    builder.setTitle(title); 
    AlertDialog dialog = builder.create(); 
    dialog.setCanceledOnTouchOutside(true); 

setCanceledOnTouchOutside funziona solo quando ho tap su una certa distanza dal dialog.When si tocca proprio vicino al dialogo non viene licenziato. Voi ragazzi sapete come chiudere la finestra di dialogo anche quando tocco vicino al dialogo? Grazie.

+0

Prova a chiamare '.setCancelable (true)' prima per vedere cosa succede. – Sw4Tish

+0

grazie per la risposta, l'ho già fatto ma nessun effetto. – user2255427

risposta

1

Utilizzo di AlertDialog.THEME_HOLO_LIGHT funziona se si desidera che la finestra di dialogo sia a schermo intero. Un'alternativa è quella di creare il proprio stile, in questo modo:

AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.ThemeDialogCustom); 
    ListAdapter adapter = new CustomDialogAdapter(context, itemsList); 
    builder.setAdapter(adapter, listener); 
    builder.setTitle(title); 
    AlertDialog dialog = builder.create(); 
    dialog.setCanceledOnTouchOutside(true); 

hanno style.xml nei valori cartella come qui di seguito :::

<?xml version="1.0" encoding="utf-8"?> 

<resources> 
<style name="ThemeDialogCustom" parent="android:Theme.Dialog"> 
    <item name="android:windowFrame">@null</item> 
    <item name="android:windowIsFloating">true</item> 
    <item name="android:windowContentOverlay">@null</item> 
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> 
    <item name="android:windowBackground">@color/transparent_color</item> 
    <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item> 
    <item name="android:colorBackgroundCacheHint">@null</item> 
    </style> 

</resources> 

aggiungere anche colors.xml nella cartella valori :::

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="transparent_color">#00000000</color> 
</resources> 

Questo funziona per me. Spero che funzioni anche per te

Problemi correlati