ReactNative中将WebView放入ListView中高度自适应
来源:互联网 发布:sublime js代码美化 编辑:程序博客网 时间:2024/04/30 11:34
在ReactNative项目中可能会遇到展示HTML代码的情况,通常我们会采用WebView来展示html代码。有时候在ReactNative中我们不需要设置WebView的高度,这只是在一般的View界面中,但是当我们在ListView中展示WebView的时候就需要设定高度才能展示出来,因此需要用js来计算文档高度做到高度自适应。
在项目中遇到的问题是没有设置WebView的高度,在iOS中可以自适应高度,但是在安卓中高度不能使用,特此记录一下,希望可以帮到遇到同样问题的你们。
获取到body体中的代码以及样式等内容
fetch(url_api) .then((response) => response.json()) .then((responseData)=>{ console.log('艺术家详情',responseData); var allData = responseData['data']; console.log('艺术家详情',allData); //获取文本 var textHtml = allData['text']; // console.log(textHtml); //拿到图片数据 if (allData['img'].length > 0) { for (var i = 0; i < allData['img'].length; i++) { var imgSrc = allData['img'][i]; var imgHtml = '<img src="' + imgSrc + '" width="100%">'; //替换占位符 textHtml = textHtml.replace('<IMG>', imgHtml); } // console.log(textHtml); } var detailArray = [1]; // 更新状态机 this.setState({ detailData: textHtml, cover: allData['cover'], dataSource: this.state.dataSource.cloneWithRows(detailArray), }); }) },
将body体中的内容赋值给WebView的source
//计算内容高度source={{html: `<!DOCTYPE html><html><body>${this.state.detailData}<script>window.onload=function(){window.location.hash = 1;document.title = document.body.clientHeight;}</script></body></html>` }}
通过WebView中的onNavigationStateChange属性进行高度的改变,通过更改属性值进行高度的改变
onNavigationStateChange={(title)=>{ if(title.title != undefined) { this.setState({ htmlHeight:(parseInt(title.title)+10) }) } }}
喜欢我的内容可以添加公众号给我留言,有问题我们一起交流学习!!!
阅读全文
0 0
- ReactNative中将WebView放入ListView中高度自适应
- cell中嵌套webview自适应高度
- webview 文本 自适应 高度
- WebView自适应高度
- webview自适应高度
- webview高度自适应
- listview自适应高度
- 高度自适应的Listview
- tablviewcell和webview自适应高度
- webview显示以及高度自适应
- tableViewCell 上面webView 自适应高度
- iOS WebView自适应内容高度
- WebView自适应实际内容高度
- webview高度自适应图文详情
- 获取webView内容高度,自适应高度
- ListView 与 GridView 在ScrollView中自适应高度
- tableViewCell中添加webView,cell自适应webView高度,解决死循环的简单办法
- tableViewCell中添加webView,cell自适应webView高度,解决死循环的简单办法
- 前端设计js+Tab切换可关闭+添加并自动判断是否已打开自动切换当前状态
- java8传递代码例子
- 《Unix网络编程》卷1:套接字联网API(第3版):名字与地址互换、IPv4和IPv6互操作性
- Color Length
- 第一次
- ReactNative中将WebView放入ListView中高度自适应
- Mac android原生工程中潜入react-native混合开发项目搭建
- 登录后台逻辑一
- zookeeper第三方库curator即可方便地实现分布式锁
- 3Sum Closest leetcode java
- 机器学习-->深度学习-->RNN,LSTM
- 20170807~20170811
- 杨臻《PPT,要你好看》(第二版)XMind思维导图
- 课工场 “微服私访”项目学习(三)