PX *_*per 4 android custom-view android-alertdialog
我想要一个Dialog有圆角的东西,但是当Dialog看到它下面有一个矩形,它在角落下面看到,像这样:

我dialog使用自定义构建DialogFragment:
public class MyDialogFragment extends DialogFragment{
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
builder.setView(inflater.inflate(R.layout.playdialog, null));
return builder.create();
}
}
Run Code Online (Sandbox Code Playgroud)
对话框布局(playdialog)具有以下drawable作为背景:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<solid
android:color="#AAAAAAAA" />
<stroke
android:width="2dp"
android:color="#FF000000" />
<corners android:radius="20dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)
正如我所说,我将此drawable设置为背景:
android:background="@drawable/dialog_background"
Run Code Online (Sandbox Code Playgroud)
我不希望看到那个矩形.我该怎么做??
在这篇文章中,用户遇到了同样的问题.我试图使用适合他的解决方案,但它对我不起作用.我修改了DialogFragment这样的:
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
builder.setView(inflater.inflate(R.layout.playdialog, null));
Dialog d = builder.create();
d.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
return d;
}
Run Code Online (Sandbox Code Playgroud)
结果完全一样.如何删除该矩形?
谢谢!
当我遇到同样的问题时,我很震惊,解决方案也有点奇怪.创建您自己的自定义drawable,例如见下文.
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="@color/text_highlight" />
<stroke
android:width="5dp"
android:color="@color/text_highlight" />
<corners android:radius="12dp" />
<stroke
android:width="1dp"
android:color="@android:color/transparent" />
</shape>
Run Code Online (Sandbox Code Playgroud)
将以下行添加到对话框中:
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
// This is line that does all the magic
dialog.getWindow().setBackgroundDrawableResource(
R.drawable.dialog_rounded);
Run Code Online (Sandbox Code Playgroud)
小智 4
尝试将您的风格设置DialogFragment为Theme_Translucent.
setStyle(STYLE_NO_FRAME, android.R.style.Theme_Translucent);
Run Code Online (Sandbox Code Playgroud)
这个对我有用。
| 归档时间: |
|
| 查看次数: |
8455 次 |
| 最近记录: |