android - 如何删除对话框边距?

标签 android layout dialog

我正在尝试创建一个自定义对话框以在屏幕底部显示值列表。

如何删除对话框边距?

我想要这个... enter image description here

我有这个... enter image description here

对话代码:

Dialog d = new Dialog(this);
    d.requestWindowFeature(Window.FEATURE_NO_TITLE);
    d.setContentView(R.layout.dialog_options);
    Window window = d.getWindow();
    WindowManager.LayoutParams wlp = window.getAttributes();
    wlp.width = WindowManager.LayoutParams.MATCH_PARENT;
    wlp.gravity = Gravity.BOTTOM;
    window.setAttributes(wlp);
    d.show();

解决了!更好的解决方案:

<style name="BottomOptionsDialogTheme" parent="Theme.AppCompat.Light.Dialog">
    <item name="android:windowBackground">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">false</item>
    <item name="android:layout_margin">0dp</item>
    <item name="android:padding">0dp</item>
    <item name="android:layout_gravity">bottom</item>

    <item name="colorPrimary">@color/orange_dark</item>
    <item name="colorPrimaryDark">@color/orange_dark</item>
    <item name="colorAccent">@color/gray_light</item>
</style>

并使用 new Dialog(context, R.theme.BottomOptionsDialogTheme);

最佳答案

改变你的线路:

Dialog d = new Dialog(this);

到:

Dialog d = new Dialog(this, R.style.DialogTheme);

并在您的 styles.xml 中添加与您的主题版本相对应的 parent

<style name="DialogTheme" parent="Theme.AppCompat.Light.Dialog">
    <!-- Customize your theme here. -->
    <item name="android:windowBackground">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">false</item>
</style>

但在我看来,在您的情况下,使用 Snackbar 可能会更好。 Here是教程。

关于android - 如何删除对话框边距?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31221211/

相关文章:

android - 如何在单个布局程序化中添加多个布局

java - 在 JFrame 中的特定点绘制一条线

java - 显示对话框而不卡住 UI

java - 从自定义对话框 View 返回值

android - boost C++ 和 Android 3

android - 在android中禁用离线时间插入到firebase?

Android - USB 开放附件模式错误

css - 我怎样才能完全居中布局的 "feature"部分(请参阅链接)?

ios - Facebook授权:打开Safari.app,如何获得应用内对话框?

android - 即使使用 Mockito 在 Android 中通过单元测试,也总是会出现线程错误