TimePickerDialog CANCEL和OK按钮不显示

时间:2017-12-28 01:06:30

标签: android

我有一个s的课程,在本课程中我使用Type '{ s: number; x: number; }' cannot be converted to type 'Foo'. Types of property 's' are incompatible. Type 'number' is not comparable to type 'string'.

时间选择器有效,但有时问题是extends DialogFragmentTimePickerDialog按钮无法显示,如下图所示。

按钮有效,但不可见。

以下是用于时间选择器的代码。

CANCEL

enter image description here enter image description here

3 个答案:

答案 0 :(得分:5)

我解决了这个问题,我认为由于某些原因,按钮的字体颜色有时显示为白色,不知道为什么。

为了解决这个问题,我在TimePickerDialog中添加了一个对话框主题来设置按钮文字颜色。

这是我添加到styles.xml的xml代码

<style name="MyTimePickerDialogTheme" parent="@style/Theme.AppCompat.Light.Dialog">
     <item name="android:textColor">@color/colorAccent</item>
     <item name="colorAccent">@color/colorAccent</item>
</style>

这是我改变的代码。

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {

    // Use the current time as the default values for the picker
    final Calendar c = Calendar.getInstance();
    int hour = c.get(Calendar.HOUR_OF_DAY);
    int minute = c.get(Calendar.MINUTE);

    Bundle b = getArguments();

    if (b != null) {
        startEndTime = b.getString("startEndTime");
    }


    // Create a new instance of TimePickerDialog and return it
    return new TimePickerDialog(getActivity(), R.style.MyTimePickerDialogTheme, this, hour, minute, DateFormat.is24HourFormat(getActivity()));
}

答案 1 :(得分:0)

我用以下代码解决了相同的问题。

<TimePicker
            android:id="@+id/timepicker"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            >

        <LinearLayout
                android:layout_gravity="right|bottom"
                android:orientation="horizontal"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">

            <com.google.android.material.button.MaterialButton
                    style="@style/Widget.MaterialComponents.Button.TextButton"
                    android:text="Cancel"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                     />

            <com.google.android.material.button.MaterialButton
                    style="@style/Widget.MaterialComponents.Button.TextButton"
                    android:layout_marginLeft="5dp"
                    android:layout_marginRight="5dp"
                    android:text="Ok"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    />
        </LinearLayout>

    </TimePicker>

答案 2 :(得分:0)

对我来说确定和取消按钮的颜色是白色的,这是因为我的 colorOnPrimary 设置为白色。

<item name="colorOnPrimary">@color/white</item>

Timepicker 使用它来修复您可以将其更改为黑色或任何您想要的颜色的问题。

<item name="colorOnPrimary">@color/black</item>

或者只是在自定义主题中添加一个新的 colorOnPrimary 并将其用于时间选择器。

<style name="MyTimePickerDialogTheme" parent="@style/Theme.AppCompat.Light.Dialog">
 <item name="colorOnPrimary">@color/black</item>
</style>