我想在webview中显示一些具有连续移动行为的文本。当我在html中使用marquee标记时,webview不会显示任何数据或文本。但如果没有marquee标签,它会显示数据/文本。我该如何解决这个问题?
请注意,我在使用kitkat和lollypop版本的android的Nexus和Samsung设备中遇到了这个问题。
这是我的java代码:
String tickerString = "<html><body><marquee>"+someTextIncludingHtmlAndCSS+"</marquee></body></html>";
WebView tickerWebView=(WebView)findViewById(R.id.tickerWebView);
tickerWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
tickerWebView.getSettings().setJavaScriptEnabled(true);
tickerWebView.loadDataWithBaseURL(null,tickerString ,"text/html", "utf-8", null);
以下是WebView的XML代码:
<WebView
android:id="@+id/tickerWebView"
android:layout_width="match_parent"
android:layout_height="40dp"
android:background="#ffffff" />
答案 0 :(得分:0)
众所周知,marquee标签可能无法在所有情况下使用。引用MDN:
<强>非标准强>
此功能是非标准功能,不符合标准。不要在面向Web的生产站点上使用它:它不适用于每个用户。实现之间可能存在很大的不兼容性,并且行为可能在将来发生变化。
但是,如果您仍想使用它,this comment应该有所帮助:
只是CSS - http://jsfiddle.net/4mJQ6/2。可以添加其他浏览器支持
小提琴转载如下:
p.marquee{
-webkit-animation-name: marquee;
-webkit-animation-timing-function: linear;
-webkit-animation-duration:10s;
-webkit-animation-iteration-count: infinite;
margin: 0;
padding: 0;
overflow: hidden;
display: block;
white-space: nowrap;
}
@-webkit-keyframes marquee{
0%{
text-indent: 95%;
}
100%{
text-indent: -20%;
}
}
<marquee>wow old school marquee</marquee>
<p class='marquee'>wow css3 marquee fun!</p>