Я создаю виджет, который показывает математическую формулу с использованием WebView и библиотеки KaTeX. Невозможно автоматически перенести формулы, размер которых больше ширины экрана.
Мой код Java в Android Studio:
WebView webView = new WebView(SpaceActivity.this);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
webView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
webView.setPadding(2, valueViewer.getTextPadding(), 2, valueViewer.getTextPadding());
String html = "<!DOCTYPE html>\n" +
"<html>\n" +
" <head>\n" +
" <meta charset=\"UTF-8\">\n" +
" <title>Auto-render test</title>\n" +
" <link rel=\"stylesheet\" type=\"text/css\" href=\"file:///android_asset/katex/katex.min.css\">\n" +
" <link rel=\"stylesheet\" type=\"text/css\" href=\"file:///android_asset/themes/style.css\">\n" +
" <script type=\"text/javascript\" src=\"file:///android_asset/katex/katex.min.js\"></script>\n" +
" <script type=\"text/javascript\" src=\"file:///android_asset/katex/contrib/auto-render.min.js\"></script>\n" +
" </head>\n" +
" <body>\n" +
" " + expression + //variable, containing formula in TeX format
" <script>\n" +
" renderMathInElement(\n" +
" document.body\n" +
" );\n" +
" </script>\n" +
" </body>\n" +
"</html>";
webView.getSettings().setSupportZoom(true);
webView.loadDataWithBaseURL("file:///android_asset/", html, "text/html", "utf-8", null);
В папке активов находится библиотека KaTeX v0.10.0.
Ранее использовался MathJax, но он медленнее, более того, при добавлении формулы в виджет он мигает и портится, что ухудшает производительность.
Здесь Я нашел JavaScript-решение, но не понимаю, где использовать в коде:
Как настроить автоматическое перенос формул?