DialogFragment圆角-如何设置透明度

时间:2018-11-20 21:15:03

标签: android kotlin dialog rounded-corners

我为带有圆角的dialogFragment进行了自定义布局,但是当调用dialog时,圆角的形状如下所示。

https://i.imgur.com/aE4PMhZ.png

我知道我需要设置透明度dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent); 但我不知道将其放在我的代码中的位置,此外,我正在使用Kotlin。

下面是调用Dialog的代码部分。

 myDialog = Event_Dialog.newInstance(args,args1)
                myDialog.show(fragmentManager, "MyDialog")

这是Event_Dialog类。

class Event_Dialog : DialogFragment() {

companion object {

    fun newInstance(bundle: String, bundle1: String): Event_Dialog {
        //description
        val args: Bundle = Bundle()
        args.putString("desc", bundle)
        //link
        args.putString("link", bundle1)

        val fragmentDialog = Event_Dialog()
        fragmentDialog.arguments = args

        return fragmentDialog
    }
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
    val x = inflater.inflate(R.layout.event_detail, container, false)
some code.......
return x

您能告诉我在哪里设置自定义背景的透明度吗? 谢谢!

2 个答案:

答案 0 :(得分:0)

只需将其放在oncreatedialog中即可:

 override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
    val dialog = super.onCreateDialog(savedInstanceState)
    dialog.window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
    return dialog
}

我建议您使用framelayout作为对话框的根视图(匹配父框架)并在其中设计中心布局

答案 1 :(得分:0)

private void setDialog(){

getDialog()。getWindow()。requestFeature(Window.FEATURE_NO_TITLE);

getDialog()。getWindow()。setBackgroundDrawableResource(android.R.color.transparent);

getDialog()。getWindow()。setLayout(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);

   getDialog().getWindow().setGravity(Gravity.CENTER);

getDialog()。setCanceledOnTouchOutside(true);

}

现在在onCreateView方法中调用setDialog()