2013-08-14 23 views
6

Tôi có một AlertDialog:setCanceledOnTouchOutside không hoạt động khi tôi khai thác chỉ gần hộp thoại bên ngoài

 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 chỉ đang làm việc khi tôi gõ vào một khoảng cách nhất định từ dialog.When i khai thác chỉ gần hộp thoại nó không bị sa thải. Các bạn có biết cách loại bỏ hộp thoại ngay cả khi tôi chạm vào gần hộp thoại không?

+0

Cố gắng gọi '.setCancelable (true)' ngay trước để xem điều gì xảy ra. – Sw4Tish

+0

cảm ơn câu trả lời, tôi đã làm điều đó nhưng không có hiệu lực. – user2255427

Trả lời

1

Sử dụng AlertDialog.THEME_HOLO_LIGHT hoạt động nếu bạn muốn hộp thoại có toàn màn hình. Một cách khác là để tạo ra phong cách riêng của bạn, như vậy:

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); 

có style.xml trong các giá trị thư mục như dưới đây :::

<?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> 

cũng thêm colors.xml trong thư mục giá trị :::

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

Điều này phù hợp với tôi. Hy vọng nó sẽ làm việc cho bạn cũng như

Các vấn đề liên quan