Android DialogPreference宽度

3
我有一个自定义的DialogPreference,里面只含有一个日期选择器。除了下方展示的那个巨大的边框和标题之外,一切都正常。
我希望对话框只包含日期选择器:
我已经弄清楚如何将窗口标题设置为null来去掉标题,但是还有一个巨大的边框存在。
我的自定义布局:
    <?xml version="1.0" encoding="utf-8"?>

    <LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <DatePicker 
        android:id="@+id/birthdayPicker"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_gravity="center_horizontal"
        android:calendarViewShown="false"/>

</LinearLayout>

我已经尝试将线性布局的宽度/高度设置为wrap_content、设置负边距以及其他一些hackey解决方案,但似乎没有什么作用。

到目前为止,我唯一的成功之处是重载onShow并以编程方式将窗口大小设置为某个任意值——如宽度为300dp。这显然是超级hackey的,我更喜欢更优雅的解决方案。如果有帮助,非常感谢各位!


你的LinearLayout为什么宽度和高度都设置为match_parent? - shkschneider
也许你的LinearLayout layout_width需要一个wrap_content - Nasir
我目前遇到了同样的问题,只不过是在使用TimePicker而非DatePicker时。你找到解决方案了吗?能否分享一下“onShow” hack的方法? - Alex
1个回答

0
<?xml version="1.0" encoding="utf-8"?>

你的LinearLayout不应该是match_parent,而应该是wrap_content,例如DatePicker的尺寸。

尝试:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <DatePicker 
        android:id="@+id/birthdayPicker"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_gravity="center_horizontal"
        android:calendarViewShown="false"/>

</LinearLayout>

1
是的,我尝试过了,但没有成功 - match_parent与wrap_content似乎没有任何区别。 - Alex Sullivan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接