Android上的输入日期选择器在WebView上显示错误的选择器

von4xj4u  于 2023-06-04  发布在  Android
关注(0)|答案(2)|浏览(175)

我在WebView中有一个HTML5 INPUT(type=“datetime-local”),但是当我选择它时,它显示了一个看起来像这样的日期-时间字段:

但Chrome中相同的元素看起来是这样的:

这是在Android 7.1下,安装了Chrome v55,因此Chrome正在使用WebView组件。所以,两者应该显示相同的东西,对吗?
我需要后一个选择器显示在WebView中,它更用户友好(滚动你可以只是向上和向下轻弹,而不是必须反复按下加号或分钟按钮。
我该如何实现这一点?
更新:我已经尝试使用DatePickerDialog本地创建这个,它做了同样的事情!我的目标是minSdkVersion=22,targetSdkVersion=25(尽管我也尝试过minSdkVersion=25)。如何强制Android为我的应用显示正确的选取器?
更新2:我使用本机DatePickerDialog下载了一个示例应用程序,它显示对话框ok。我不喜欢这样的想法,必须试图找到这两个项目之间的差异,这是造成行为的差异,因为它可以是任何东西,并采取了大量的时间来找到。
更新3:使用Oleg提供的答案,我能够使用android:Theme.Holo.Light.DarkActionBar重现第二个选择器。但是如果我使用android:Theme.DeviceDefault.Light,我可以得到input type="date"的日历视图。但是默认主题(圆形时钟)中相应的时间选择器并不显示在input type="time"中,并且``input type=“datetime-local”`也不使用日历视图。

0mkxixxg

0mkxixxg1#

正如在评论中所讨论的,你可能错过了适当的主题。鉴于您可以访问工作应用程序,请应用相同的主题,它应该解决它

ff29svar

ff29svar2#

您必须更改应用程序设置。步骤如下:-

1./android/app/build.gradle**中添加对Android Material的依赖:

dependencies {
    //..
    implementation 'com.google.android.material:material:<version>'
    }

您可以在这里找到最新版本:-https://maven.google.com/web/index.html#com.google.android.material:material

2./android/app/src/main/res/values/styles.xml**中设置灯光主题:

<style name="NormalTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
    <item name="android:windowBackground">?android:colorBackground</item>
</style>

3./android/app/src/main/res/values-night/styles.xml中设置深色主题**

<style name="NormalTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
    <item name="android:windowBackground">?android:colorBackground</item>
</style>

相关问题