我为带有圆角的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
您能告诉我在哪里设置自定义背景的透明度吗? 谢谢!
答案 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()