【问题标题】:Impossible to disable click on datepicker无法禁用点击日期选择器
【发布时间】:2020-03-22 15:51:57
【问题描述】:

我想在我的布局中禁用对日期选择器的点击,但我找不到要编辑的属性来禁用点击。 我试图将 clickable 设置为 false,将 focusable 设置为 false,但似乎没有任何效果。我总是可以点击它并设置一个日期。

我的 fab 按钮上有一个事件,可以启用和禁用我的 edittext 和 checkedit,它运行良好。 我只是无法禁用日期选择器

这是我活动的 xml:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/cardview_light_background"
    tools:context=".ui.detail.DetailFoodActivity">

    <EditText
        android:id="@+id/detailFoodName"
        style="@style/Base.Widget.MaterialComponents.TextInputEditText"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"
        android:ems="10"
        android:enabled="false"
        android:focusable="true"
        android:inputType="textPersonName"
        android:textAppearance="@style/TextAppearance.AppCompat.Large"
        android:textSize="28dp"
        android:typeface="serif"
        android:visibility="invisible"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/detailTextDate"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="18dp"
        android:layout_marginTop="16dp"
        android:text="TextView"
        android:textAppearance="@style/TextAppearance.AppCompat.Medium"
        app:layout_constraintEnd_toEndOf="@+id/detailFoodName"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/detailFoodName" />

    <DatePicker
        android:id="@+id/detailDatePicker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:clickable="false"
        android:datePickerMode="calendar"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/detailTextDate" />

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/action_edit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="16dp"
        android:layout_marginBottom="16dp"
        android:clickable="true"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:srcCompat="@drawable/ic_edit_white_24dp" />

    <RadioGroup
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="18dp"
        android:layout_marginTop="16dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/detailDatePicker">

        <RadioButton
            android:id="@+id/radioButtonEaten"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:clickable="false"
            android:text="Eaten" />

        <RadioButton
            android:id="@+id/radioButtonBin"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:clickable="false"
            android:text="At the bin" />
    </RadioGroup>

    <TextView
        android:id="@+id/detailTextViewName"
        android:layout_width="0dp"
        android:layout_height="70dp"
        android:layout_marginTop="8dp"
        android:lineSpacingExtra="0dp"
        android:paddingStart="20dp"
        android:paddingTop="16dp"
        android:text="TextView"
        android:textAlignment="viewStart"
        android:textAllCaps="false"
        android:textAppearance="@style/TextAppearance.AppCompat.Large"
        android:textSize="28dp"
        android:typeface="serif"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

如果有人知道如何禁用它

谢谢

【问题讨论】:

    标签: android kotlin datepicker


    【解决方案1】:

    您可以使用 DatePicker 控件的 setEnabled() 属性来启用/禁用它

    setEnabled(true)
    setEnabled(false)
    

    这里是a link of android document 以获取更多参考

    【讨论】:

    • 它不起作用它只会禁用标题但我仍然可以单击并更改日​​期
    • 如果您愿意,可以使用其他选项。用户 EditText 并在其上打开 DatePicker 对话框单击事件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-07
    • 1970-01-01
    • 2014-11-10
    • 1970-01-01
    • 2015-03-10
    相关资源
    最近更新 更多