为什么日期选择器会在我的视图中添加一个日历?

24


我开始学习如何在Android上进行开发。 这相当简单,但我遇到了一个问题,我在任何地方都没有找到提及...

我有一个视图:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
     android:paddingLeft="16dp"
android:paddingRight="16dp"
android:orientation="vertical">

    <EditText
        android:id="@+id/editNomProduit"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="@string/ht_nom_produit" />



    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
     android:paddingLeft="16dp"
android:paddingRight="16dp"
android:orientation="horizontal">

        <TextView
            android:id="@+id/labelQuantiteProduitEdit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/labelQuantiteProduitEdit"
            android:textAppearance="?android:attr/textAppearanceMedium" />

<EditText
        android:id="@+id/editQuantite"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="number" />

<Spinner
    android:id="@+id/spinnerUnite"
    android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    </LinearLayout>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
     android:paddingLeft="16dp"
android:paddingRight="16dp"
android:orientation="horizontal">

        <TextView
            android:id="@+id/labeDateAchatProduitEdit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/labelDateAchatProduitEdit"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <DatePicker
            android:id="@+id/dpDateAchatProduit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

</LinearLayout>

</LinearLayout>

显示一个日期选择器。问题在于,日期选择器似乎除了经典的日期选择器滚轮之外还增加了一个日历(参见图片)。我不想要这个视图,只要日期的滚轮。我是在错误地使用日期选择器还是这是原始行为?谢谢!

Guillaume

带有日历的日期选择器

5个回答

69
将此行添加到您的日期选择器xml文件中。

android:calendarViewShown="false"

这将删除日历。


确实这帮了很大的忙!谢谢。 - Guigui
3
如果您写 android:datePickerMode="spinner",它将起作用。 - Alexandre TryHard Leblanc
我只想补充一下,这个选项仅适用于API 11及以上版本。 - Neon Warge
在 API 级别 >= 24 下,当选择器是通过代码创建的且没有 XML 时,如何以编程方式完成? - Michael

6

在下面添加所有需要的内容:

 <datepicker>

如果想添加一个新的方法,只需要:

 android:calendarViewShown="false"

这将移除日历,但保留滚动条。
希望这可以帮到你。

2

我有同样的问题。我没有创建任何xml文件。所以我通过更改Activity中calendarviewshow的值来解决它。希望能帮助到有需要的人。

我们可以使用两种方法隐藏DatePicker中的日历视图。

1 在布局(XML文件)中(感谢@coconess)

<DatePicker
    android:id="@+id/datepickerv1"
    android:calendarViewShown="false">

2 在Activity(Java文件)中

Note: If you are not using "calendarViewShow" in xml, follow this step.
DatePicker dp=(DatePicker)findViewById(R.id.datepickerv1);
dp.setCalendarViewShown(false);

setCalendarViewShown在API版本24中已被弃用,现在该怎么办? - Michael

1
添加
android:datePickerMode="spinner"

代替

android:calenderViewShown="false"

1
将您的日期选择器从xml更改如下:

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


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