2010-06-24 56 views
27

我有我我UserInputDialog類設置爲這個漂亮的對話框觀點機器人對話:調用沒有它衰落的背景

<LinearLayout android:id="@+id/LinearLayout01" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

     <TextView 
     android:id="@+id/nameMessage" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="What is your name Captain?" 
     > 
     </TextView> 
     <EditText 
     android:id="@+id/nameEditText" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:textSize="18sp" 
     > 
     </EditText> 
    <LinearLayout android:id="@+id/LinearLayout02" android:layout_width="fill_parent" android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal"> 
    <Button 
     android:id="@+id/okButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="OK"> 
     </Button> 
     <Button android:id="@+id/cancelButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Cancel"> 
     </Button>    
    </LinearLayout> 
</LinearLayout> 

我希望我的對話框出現,但爲背景不淡出。這可能嗎?導致調用此對話框的視圖具有neato背景,我希望將其顯示爲對話框的背景。

我發現這個在線:

<style name="doNotDim" parent="@android:style/Theme.Dialog"> 
    <item name="android:backgroundDimAmount">0</item> 
</style > 

,但不知道如何應用到我的對話?我有一個叫public class UserInputDialog extends Dialog implements OnClickListener的課。它將其內容視圖設置爲上述佈局。

我想我是這樣做的,只是不知道如何添加該風格,所以我不能淡化背景。

第二個問題:通過使用主題,您可以在對話框中獲得新的外觀(例如通過圖像或圖標顯示您的文本)?

回答

27

創建res/values/styles.xml文件並將其添加到它。

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="Theme.DoNotDim" parent="android:Theme"> 
    <item name="android:backgroundDimEnabled">false</item> 
    </style> 
</resources> 

並將主題應用於您的活動。

<activity android:name=".SampleActivity" android:theme="@style/Theme.DoNotDim"> 
+0

意志,使每一個我從活動調用使用相同的樣式對話框? – Codejoy 2010-06-25 04:12:23

+0

其實這是一個活動的風格設置,這意味着活動不會變暗。與對話無關。 – 2010-06-25 13:09:51

+0

非常有用,謝謝 – 2015-09-06 12:15:29

143

您還可以刪除與代碼朦朧效果如下:

dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); 
+2

這更簡潔,應該是被接受的答案。 – 2017-02-21 19:32:03

+0

適用於bottomSheetDialog太....... – adafrwefsefr 2017-06-21 10:05:59

+0

偉大的答案!它應該是被接受的。 – 2017-10-08 12:28:33

4

創建一個自定義樣式,並將其放置在你的價值觀夾

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="YourCustomStyle" parent="android:Theme"> 
    <item name="android:backgroundDimEnabled">false</item> 
    </style> 
</resources> 

要設置樣式您可以使用的單個對話框

Dialog dialog = new Dialog(context, R.style.YourCustomStyle); 
0

用於顯示對話框如TrueCaller這樣做:

styles.xml文件中。

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="myBackgroundStyle" parent="android:Theme.Dialog"> 
    <item name="android:backgroundDimEnabled">false</item> 
    </style> 
</resources> 

AndroidManifest.xml做到這一點:

<activity android:name=".SampleActivity" android:theme="@style/myBackgroundStyle">