Android WebView回调无法更改控件状态
来源:互联网 发布:gta5pc男角色捏脸数据 编辑:程序博客网 时间:2024/06/11 20:46
问题背景:Android WebView加载html,获取js暴露给Android的方法,使用接口进行回调,在回调方法中不能更改控件的任何状态。
MainActivity.java
private RelativeLayout rlLoading;...
rlLoading = (RelativeLayout) findViewById(R.id.rl_progress_indicator);...
这是回调方法中出错的代码,程序并不崩溃,但是这个控件并不会显示或者隐藏,如果后面还有其他的代码也是执行不到的。
@Overridepublic void showLoading(boolean visible) { if (visible) { rlLoading.setVisibility(View.VISIBLE); } else { rlLoading.setVisibility(View.GONE); }}出现这个问题的原因是因为回调js的方法时,已经不在主线程了,所以在js回调方法中进行Activity的回调方法也无法实现UI线程中控件状态的改变。
以下代码是解决这个问题的办法,即将控件的状态改变强行在主线程中执行。
@Overridepublic void showLoading(boolean visible) { if (visible) { runOnUiThread(new Runnable() { @Override public void run() { rlLoading.setVisibility(View.VISIBLE); } }); } else { runOnUiThread(new Runnable() { @Override public void run() { rlLoading.setVisibility(View.GONE); } }); }}该问题解决了,齐活,下班!
0 0
- Android WebView回调无法更改控件状态
- android 更改webview大小
- Android控件webview使用
- Android WebView控件整理
- Android的WebView控件
- Android控件之WebView
- android 控件学习------WebView
- android的webview控件
- Android:控件WebView笔记
- Android控件 webView
- Android控件之WebView
- android开发WebView控件
- android webview控件学习
- Android—(WebView控件)
- Android控件之WebView
- 【Android】在Activity里面更改gridView 条目中某个控件的状态
- android webview 更改显示的分辨率,单独更改文字大小2.
- android webview无法加载网址
- spring-context入门配置详解
- Property follows Cocoa naming convention for returning 'owned' objects
- Python基础——变量、对象和引用
- 通过使用spring-data-mongodb操作mongodb
- 5款Python绘图库,为你轻松实现大数据可视化!
- Android WebView回调无法更改控件状态
- mybatis源码学习之执行过程分析(2)——config.xml配置文件和mapper.xml映射文件解析过程
- java_websocket详解(二)
- 正则表达式相关规则
- ZCMU-1127-(stringstream的应用)
- leetcode No149. Max Points on a Line
- Java面向对象-5.引用
- linux信号相关的数据结构
- swift协议调用