简单的WebView自适应并嵌套在ScrollView里_html/css_WEB-ITnose
因为某种原因,我们总是需要展示一些复杂的文本,Html.fromHtml()已经不能满足我们的需求,比如后台可编辑的文本在前端显示起来比较吃力,所以为了解决一些复杂的文本显示就需要用到WebView。
WebView in ScrollView
我们都知道ScrollView和WebView都有滚动的效果,所以我们需要先屏蔽WebView的滚动事件。
Stack overflow讨论
<ScrollView android:layout_width="match_parent" android:layout_height="wrap_content" android:descendantFocusability="blocksDescendants" >
中文乱码
如果出现中文乱码,你可以这样设置
webView.loadData(body, "text/html; charset=utf-8", "utf-8");
Auto Scale
这时候如果后端如果传过来的不是完整的Html,而是只有body部分的内容,那么我们就需要补充并添加一些css样式来达到自适应的效果。
Stack overflow讨论
WebView webView = new WebView(this);webView.setWebViewClient(new SimpleWebViewClient(title)); webView.getSettings().setDefaultTextEncodingName("utf-8");if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING);} else { webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL);}webView.loadData(getHtmlData(body), "text/html; charset=utf-8", "utf-8");
别忘了头部的设定:
官方对自适应的最佳实践
private String getHtmlData(String bodyHTML) { String head = "<head>" + "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\"> " + "<style>img{max-width: 100%; width:auto; height:auto;}</style>" + "</head>"; return "<html>" + head + "<body>" + bodyHTML + "</body></html>";}
End
最后,原本还担心如何控制WebView的高度,没想到WebView可以自己适应内容最长的高度。再附上别人总结的WebView常见问题
转载请附上本文地址

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

HTML is suitable for beginners because it is simple and easy to learn and can quickly see results. 1) The learning curve of HTML is smooth and easy to get started. 2) Just master the basic tags to start creating web pages. 3) High flexibility and can be used in combination with CSS and JavaScript. 4) Rich learning resources and modern tools support the learning process.

HTML defines the web structure, CSS is responsible for style and layout, and JavaScript gives dynamic interaction. The three perform their duties in web development and jointly build a colorful website.

WebdevelopmentreliesonHTML,CSS,andJavaScript:1)HTMLstructurescontent,2)CSSstylesit,and3)JavaScriptaddsinteractivity,formingthebasisofmodernwebexperiences.

AnexampleofastartingtaginHTMLis,whichbeginsaparagraph.StartingtagsareessentialinHTMLastheyinitiateelements,definetheirtypes,andarecrucialforstructuringwebpagesandconstructingtheDOM.

GiteePages static website deployment failed: 404 error troubleshooting and resolution when using Gitee...

The Y-axis position adaptive algorithm for web annotation function This article will explore how to implement annotation functions similar to Word documents, especially how to deal with the interval between annotations...

HTML, CSS and JavaScript are the three pillars of web development. 1. HTML defines the web page structure and uses tags such as, etc. 2. CSS controls the web page style, using selectors and attributes such as color, font-size, etc. 3. JavaScript realizes dynamic effects and interaction, through event monitoring and DOM operations.

To achieve the effect of scattering and enlarging the surrounding images after clicking on the image, many web designs need to achieve an interactive effect: click on a certain image to make the surrounding...
