2012-01-12 37 views
20

Tôi có một hoạt động mà là với Theme.Transparent chủ đề đó là:loại bỏ biên giới, đệm từ Dialog

<style name="Theme.Transparent" parent="android:Theme.Dialog"> 
    <item name="android:windowIsTranslucent">true</item> 
    <item name="android:windowNoTitle">false</item> 
    <item name="android:windowIsFloating">true</item> 
    <item name="android:backgroundDimEnabled">false</item> 
    <item name="android:gravity">top</item> 
</style> 

tôi đang cố gắng để thoát khỏi biên giới và padding xung quanh nó .. tôi muốn để điền vào phần ngang của màn hình. và không có viền màu xám. xin vui lòng giúp :) enter image description here

Trả lời

71

Hãy chắc chắn để tạo Dialog bạn tham khảo chủ đề tùy chỉnh của bạn:

Dialog dialog = new Dialog(this, R.style.MyDialogTheme); 

chủ đề tùy chỉnh của bạn cần phải lấp đầy màn hình và vô hiệu hóa một vài Android framework defaults:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="MyDialogTheme" parent="android:Theme.Dialog"> 
     <!-- Fill the screen --> 
     <item name="android:layout_width">fill_parent</item> 
     <item name="android:layout_height">fill_parent</item> 

     <!-- No backgrounds, titles or window float --> 
     <item name="android:windowBackground">@null</item> 
     <item name="android:windowNoTitle">true</item> 
     <item name="android:windowIsFloating">false</item>  

     <!-- Just to prove it's working --> 
     <item name="android:background">#ff0000</item> 
    </style> 

</resources> 
+0

THANKS! :) ​​@ null đã thực hiện thủ thuật! tôi chỉ có thể thưởng số tiền thưởng trong 17 giờ. nhưng tôi sẽ. cảm ơn rất nhiều. – Guy

+0

Rất vui được trợ giúp; ngạc nhiên không ai khác đã trả lời câu hỏi này. Nó chắc chắn không rõ ràng, nhưng kiểm tra nguồn Android trên github có thể giúp tìm ra những gì đang xảy ra theo mặc định! –

+0

Tôi muốn tôi có thể upvote này hai lần. Lưu ý để peeps: nulling ra cửa sổBackground là cách duy nhất để có được hộp thoại để hiển thị FLUSH - nghĩa là không có gợi ý của xem đằng sau nó. David, bạn đá. – HappyKatz

11

Tương tự như trên nhưng làm nó trong mã hơn là trong xml làm việc cho tôi.

getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 
+0

Tôi phát hiện ra rằng cách này không hoạt động tốt như câu trả lời được chấp nhận. Cách này chỉ làm mờ mọi phần đệm xung quanh hộp thoại nhưng không thực sự xóa phần đệm. Đây là vấn đề khi người dùng nhấp vào xung quanh hộp thoại để hủy cuộc hội thoại nhưng nó sẽ không bị hủy vì phần đệm vẫn ở đó nhưng được minh bạch. –

+0

Cảm ơn bạn rất nhiều! Công việc này cho tôi! – mghhgm

+0

Tuyệt vời. Cảm ơn người đàn ông – FaisalAhmed

5

Đặt chiều rộng và chiều cao để khớp với vùng chứa chính.

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    WindowManager.LayoutParams wmlp = dialog.getWindow() 
      .getAttributes(); 
    wmlp.width = android.view.WindowManager.LayoutParams.MATCH_PARENT; 
    wmlp.height = android.view.WindowManager.LayoutParams.WRAP_CONTENT; 
+0

Hoàn hảo, trả lời! :) –

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