2013-08-29 82 views
12

http://developer.android.com/design/building-blocks/dialogs.html中的Android設計文檔明確區分了對話框,警報,彈出窗口和Toasts。它還推薦使用對話框通過DialogFragment類和通過Toast類的方式來生成。不過,我不清楚彈出窗口應該使用PopupWindow還是DialogFragmentAndroid中的對話框和彈出窗口

我知道DialogFragments通常會與確定/取消按鈕和的PopupWindows位置可以被定義,但:

+0

好吧,根據[dialogs.html](HTTP ://developer.android.com/guide/topics/ui/dialogs.html),他們推薦使用'DialogFragment'even for windows,例如[list_dialog](http://developer.android.com/images /ui/dialog_list.png)沒有按鈕。另外,我猜想基於'Fragments'的事實使它成爲BackStack的補充,但我不清楚如何用'PopupWindow'來做這件事。因此,我將使用「DialogFragment」方法,但我仍然會對兩種類的比較有更深入的瞭解。 – leo9r

回答

2

如果你想對話框如圖所示鏈接,只需通過使自定義對話框使它們下面所提到:

進行對話框對象:

Dialog dialog = new Dialog(context,android.R.style.Theme_Translucent_NoTitleBar); 

設置自定義視圖此對話框:

show_dialog(){ 
    dialog.setContentView(R.layout.custom_dialog);//your custom dialog layout. 
} 

您的自定義佈局應該是這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="fill_parent" 
    android:layout_width="fill_parent" 
    android:id="@+id/custom_dialog_first_rl" 
    android:background="@android:color/black"> 
<!-- write code for rest of your UI here --> 
</RelativeLayout> 

在show_dialog(你的第一個相對佈局現在設置阿爾法)是這樣的:

show_dialog(){ 
    dialog.setContentView(R.layout.custom_dialog);//your custom dialog layout. 
    RelativeLayout custom_dialog_first_rl=(RelativeLayout)dialog.findViewById(R.id.custom_dialog_first_rl); 
     custom_dialog_first_rl.getBackground().setAlpha(170); 
} 

呼叫show_dialog()在那裏你想顯示此對話框