gpt4 book ai didi

android - 让 Android 像 Android Spinner 一样对待 HTML Select?

转载 作者:太空狗 更新时间:2023-10-29 15:16:58 26 4
gpt4 key购买 nike

Android Spinner GUI 组件是一个典型的具有自动完成功能的下拉列表。
带有数据列表的 HTML5 select 也是,但不幸的是,Android 中带有数据列表的 HTML5 不是

当然,Android 要到明年才会支持数据列表(他们声称)。更重要的是,任何 HTML 选择在平板电脑上都是 Android 的黑客工作。在电话上,没关系。在平板电脑上,选择不是下拉菜单,而是在屏幕底部向上滑动的简短列表。该列表有单选按钮和完成按钮。它是一个奇怪的小 UI 组件,它会进入屏幕而不是显示下拉列表。有没有办法告诉 Android 做正确的事?要像在桌面上的网络浏览器中那样对待它?

我已经使用了 jQuery UI 下拉列表,它在平板电脑上没问题,但在手机上却很糟糕。在手机上,键盘出现并挡住了显示屏。有什么方法可以告诉 Android 做正确的事吗?要不为这个特定的 html 输入元素显示键盘?

我可以告诉 Android 去:

  1. 不为某些元素显示键盘?
  2. 不是做那些愚蠢的 iPad 风格的疣,而是像普通浏览器一样做 html 选择,就像他们做自己的下拉列表 Spinner 一样?

最佳答案

这有点 hacky 但它是可能的。您必须在 WebView 和您的 java 代码之间创建一个 javascript 桥梁。

class JsBridge {
@JavascriptInterface
public void showNativeSpinner() {
// show native spinner logic
}
}

webView.addJavascriptInterface(new JsBridge(), "jsBridge");

在您的 html 代码中,您必须删除/隐藏 select 并添加某种可以单击的占位符。禁用 select 将不起作用,因为禁用的元素无法接收事件(无法单击)。然后附加一个触发桥接方法的 onclick 回调。所有这些都可以使用 javascript 完成。

$("#my-select").hide();
$("#my-select-parent").append("<div id='placeholder'></div>");
$("#placeholder").on("click", function() {
jsBridge.showNativeSpinner();
});

您可以通过这种方式从java```代码向WebView执行javascript``代码



webView.loadUrl("javascript:yourLogicFunction()");

你应该做的最后一件事是添加一个 OnItemSelectedListener 到微调器并在监听器方法中调用 WebView 中的 javascript 回调再次使用 loadUrl 方法。

这应该可以解决您的问题:)

关于android - 让 Android 像 Android Spinner 一样对待 HTML Select?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27105452/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com