在页面上单击一次后,是否可以隐藏android网络视图



标题是怎么说的。我有一个网络视图,它加载了一个带有一个问题的调查。在用户点击/点击页面上的答案之后;谢谢你"显示(似乎问题元素被隐藏,感谢详细信息变得可见(。"谢谢你";页面";大部分是空白的,用户无法退出视图(或页面(。我想在用户点击答案(或其他任何地方(后隐藏网络视图,它仍然应该在隐藏之前接受点击。我尝试过使用:

// Find view
val webView: WebView = findViewById(R.id.web_view)
// Enable JS
val webSettings: WebSettings = webView.getSettings()
webSettings.javaScriptEnabled = true
// Load the page and set a listener to hide after a click.
webView.loadUrl(targetingResult.getSurveyUrl())
webView.setOnClickListener {
it.visibility = View.INVISIBLE
}

但它不起作用。我认为它仍然接受页面上的点击,而不是视图/网络视图本身。需要考虑的一些事项:

  • 视图占据了整个活动/屏幕空间。我无法在某个位置添加按钮来关闭视图
  • 理想情况下,不使用后退按钮
  • 如果你的答案使用JS,请假设我从未使用过JavaScript(保持简洁直接(
  • 欢迎注释代码

TL;DR-在用户单击某个元素后隐藏网络视图。让页面在隐藏web视图的同时完成自己的任务。

有一个名为JavaScriptInterface的注释,

public class JavaScriptInterface {
Context mContext;

/** Instantiate the interface and set the context */
JavaScriptInterface(Context c) {
mContext = c;
}

@JavascriptInterface
fun hideWebView() {
webView.setOnClickListener {
it.visibility = View.INVISIBLE
}
}
}

并将其设置为WebView,如下所示

wv.addJavascriptInterface(JSInterface, "JSInterface"); 

然后你可以要求网络开发人员从他的角度调用这个函数,比如

function hidePage()
{
JSInterface.hideWebView();
}

这种方式:

webView.setOnClickListener {
webView.visibility = View.GONE
}

另一个想法是将该视图从其父视图中删除。

webView.setOnClickListener {
(webView.parent as ViewGroup).removeView(webView)
}

相关内容

  • 没有找到相关文章

最新更新