需要从对话框 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/

10-12 02:33