Android对话框片段消除黑色边框(顶部和底部)

Android对话框片段消除黑色边框(顶部和底部),android,android-dialogfragment,Android,Android Dialogfragment,需要从对话框片段中消除顶部和底部边框。你是怎么做到的 AlertDialog.Builder builder = new AlertDialog.Builder(activity); builder.setCancelable(true); LayoutInflater inflater = LayoutInflater.from(activity); View view = inflater.inflate(R.layout.variants_dialog,

需要从对话框片段中消除顶部和底部边框。你是怎么做到的

    AlertDialog.Builder builder = new AlertDialog.Builder(activity);
    builder.setCancelable(true);

    LayoutInflater inflater = LayoutInflater.from(activity);
    View view = inflater.inflate(R.layout.variants_dialog, null);

    // setup views
    setupListView(view);
    ...

    builder.setView(view);
    return builder.create(); // HERE I HAVE TOP & BOTTOM BLACK BORDERS

这并没有什么作用:

        builder.setView(view);
        AlertDialog result = builder.create();
        result.getWindow().setBackgroundDrawable(new ColorDrawable());
        return result;

没有这样的方法:

         dialog.setView(layout, 0, 0, 0, 0);

我对DialogFragments不太熟悉,但是,如果使用常规对话框,您通常会使用R.value.style并添加:

 <style name="myDialog" parent="@android:style/Theme.Dialog">
    <item name="android:buttonStyle">@style/Button</item>
    <item name="android:windowBackground">@android:color/transparent</item> 
    <item name="android:windowAnimationStyle">@style/PauseDialogAnimation</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:textColor">#FFFFFFFF</item>
    <item name="android:shadowColor">#cdc9c9</item>
    <item name="android:shadowDx">0</item>
    <item name="android:shadowDy">-1</item>
    <item name="android:shadowRadius">0.5</item>
</style>

@样式/按钮
@android:彩色/透明
@风格/暂停组织
真的
真的
@空的
#FFFFFFFF
#cdc9c9
0
-1
0.5

并将对话框设置为具有阶梯
myDialog
。但是,在初始化样式时,似乎需要定义样式,
DialogFragment.style\u NO\u FRAME,希望能有所帮助,尽管我知道这不是一个完整的答案。

不久前我也遇到过类似的问题。问题是构建器根本不允许您使用对话框的填充。我的工作是创建AlertDialog的子类:

final class PaddinglessDialog extends AlertDialog {
    public PaddinglessDialog(Context context, int theme) {
        super(context, theme);
    }
}
然后我继续这样使用它:

PaddinglessDialog alertDialog = new PaddinglessDialog(this, android.R.style.Theme_Holo_Light_Panel);
View layout = LayoutInflater.from(this).inflate(R.layout.my_dialog_layout, ...);
alertDialog.setView(layout, 0, 0, 0, 0);
alertDialog.setCanceledOnTouchOutside(false);
...
dialog = alertDialog;
找到解决办法

没有

setView(layout, 0, 0, 0, 0);
在dialogFragment的生成器上,但AlertDialog具有此方法。。因此,与其返回

builder.create();
这样做

//dont set view for builder!
AlertDialog result = builder.create();
result.setView(view, 0, 0, 0, 0);
return result;

这就是我的工作原理:

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

啊,安卓,每个视图都有自己隐藏的小谜题,需要花费数小时来解决。。。你真有趣。我希望在5.0中有更多未记录的、随机的乐趣!哦,你的Android版本没有我的那么随机,所以不幸的是,这个随机问题的随机解决方案对我不起作用。幸运的是,现在已经有足够多的可怕的黑条流行起来了。简单地说,这就消除了
DialogFragment
的上边框。