我想做以下(漆進入):非常定製DialogFragment
正如你所看到的,在對話框在屏幕的中間,有一個自定義視圖。
但是,我想讓用戶能夠點擊對話框後面的「不要關閉對話框」。
我做了以下實現(DialogFragment
):
**
* Triggered when the Dialog is created.
*
* @param savedInstanceState - Bundle containing saved information.
*
* @return Dialog ready to be shown.
*/
@Override
public Dialog onCreateDialog(Bundle savedInstanceState)
{
Dialog dialog = new Dialog(context);
setCancelable(false);
return dialog;
}
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setStyle(STYLE_NO_INPUT, R.style.launcherDialog);
}
這產生了以下內容:
這幾乎是正確的,現在我要做兩件事情:
- 添加自定義視圖
- 刪除從對話框生成的灰色背景。
所以添加自定義視圖,我的確在onCreateDialog
如下:
LayoutInflater inflater = LayoutInflater.from(context)
View progressbarLayout = inflater.inflate(R.layout.launcher_dialog_view, null);
dialog.setContentView(progressbarLayout);
但我得到這個異常:
java.lang.RuntimeException: Unable to start activity ComponentInfo{SearchActivity}: android.util.AndroidRuntimeException: requestFeature() must be called before adding content
而且不管怎麼說,我還是有缺少如何刪除由DialogFragment
生成的灰色背景。
提示是soooo讚賞。我一直堅持這麼多小時。
編輯:哦,佈局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/launcher_ad_holder"
android:layout_height="150dp"
android:layout_width="150dp"
android:background="@android:color/transparent">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New RadioButton"
android:id="@+id/radioButton" android:layout_centerVertical="true" android:layout_alignParentRight="true"/>
</RelativeLayout>
而且款式:
<resources>
<style name="launcherDialog" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowIsFloating">false</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowTitleStyle">@null</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
<item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
<item name="android:gravity">bottom</item>
</style>
你可以參考這個鏈接的http://計算器。 com/questions/20258730 /定製對話框與關閉按鈕/ 20258862#20258862 –
您無法與顯示的對話框背後進行交互,因此您可能需要僞造一個看起來像對話框的視圖。 – Kai
@Kai你確定嗎?因爲我實際上正在與editText交互,你可以在paint中看到它。我可以輸入內容並按搜索。唯一的問題是,我不知道如何添加customView(沒有崩潰),以及如何刪除灰色背景 – Reinherd