Html <marquee>标记阻止在Android WebView中显示数据

时间:2015-05-26 11:37:38

标签: android html webview

我想在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" />

1 个答案:

答案 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>