何らかの理由で、常に複雑なテキストを表示する必要があります。たとえば、フロントエンドのバックグラウンドに編集可能なテキストを表示するのは困難です。複雑なテキスト表示を解決するには、WebView を使用する必要があります。
ScrollView と WebView の両方にスクロール効果があることは誰もが知っているため、最初に WebView のスクロール イベントをブロックする必要があります。
スタックオーバーフローに関する議論
<ScrollView android:layout_width="match_parent" android:layout_height="wrap_content" android:descendantFocusability="blocksDescendants" >
中国語の文字化けが発生する場合は、次のように設定できます
webView.loadData(body, "text/html; charset=utf-8", "utf-8");
現時点で、バックエンドが完全な Html ではなく本文部分のコンテンツのみを渡す場合は、適応効果を達成するためにいくつかの CSS スタイルを補足および追加する必要があります。
スタック オーバーフローのディスカッション
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>";}
最後に、最初は WebView の高さをどのように制御するかについて心配していましたが、WebView がコンテンツの最長の高さに適応できるとは予想していませんでした。他の方がまとめた WebView に関するよくある質問を添付します
転載の際はこの記事のアドレスを添付してください