如何在加载webview时使用Shimmer for Android?

时间:2014-06-07 00:01:16

标签: java android eclipse webview

这是我想要使用的库:https://github.com/RomainPiel/Shimmer-android

它基本上是一个闪烁的文本视图,但我想在我的webview加载时显示它。然而,作为文本视图,微光需要布局。我是否应该创建一个新活动来显示闪烁的文本视图,并在Web视图加载时显示哪些内容?

我在这里试图实现此代码:

webView.setWebViewClient(new WebViewClient(){
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon)
    {
        // TODO show you progress image
        super.onPageStarted(view, url, favicon);
        Log.i("WEBVIEW", "Loading");
    }

    @Override
    public void onPageFinished(WebView view, String url)
    {
        // TODO hide your progress image
        super.onPageFinished(view, url);
        Log.i("WEBVIEW", "Loading Done");
    }
});

1 个答案:

答案 0 :(得分:2)

我从未使用WebView,但你的想法看起来不错。

只需使用FrameLayout,即可使用Z排序的优势(在FrameLayout中,视图按深度排序)。像这样:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android">

    <WebView
        ...Properties
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <LinearLayout
        ...Properties
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <com.romainpiel.shimmer.ShimmerTextView
            android:id="@+id/shimmer_tv"
            android:text="@string/shimmer"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#444"
            android:textSize="50sp"/>
    </LinearLayout>
</FrameLayout>

因此LinearLayout将位于WebView的顶部,并在bringToFront()上使用WebView并隐藏LinearLayout以在页面完成时显示WebView负荷。

看看这个page解释这种行为。