需要从对话框 fragment 中消除顶部和底部边框。你怎么做呢?
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>
并将您的对话框设置为 stile
myDialog
。但是,对于 dialogFragments ,似乎您需要在初始化时定义样式 DialogFragment.STYLE_NO_FRAME;
,希望有所帮助,尽管我知道这不是一个完整的答案。关于Android Dialog fragment 消除黑边(顶部和底部),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11717052/