需要从对话片段消除顶部和底部边框。 你怎么做呢?
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.styles并添加:
<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>
并设置对话框中有窗框myDialog
。 然而,随着dialogFragments ,看来你需要在你初始化它,定义样式DialogFragment.STYLE_NO_FRAME;
,希望帮助一些,虽然我知道这是不是一个完整的答案。
发现其解决方法!
没有
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);
我不是很久以前也有类似的问题。 问题是,该生成器不会让你与对话的所有填充玩。 我的工作是围绕创建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;