Fabric.io 用户时间线加载事件

Fabric.io usertimeline loaded event

我正在使用来自 Fabric.io 的 Twitter 提要。

要设置,我使用的是这种方法:

final UserTimeline userTimeline = new UserTimeline.Builder()
    .screenName(screenname)
    .build();
final TweetTimelineListAdapter adapter = new TweetTimelineListAdapter(mContext, userTimeline);
listViewTweets.setAdapter(adapter);

我的目标是在加载提要之前显示加载指示器,从而显示在视图中。 我该怎么做?

listViewTweets.setAdapter(adapter); 之前插入:

listviewo.setEmptyView(findViewById(R.id.loading));

loading 是一个 ProgressBar 把它放在你的 XML 里面你有 ListView:

<ProgressBar
        android:id="@+id/loading"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:indeterminateDrawable="@anim/loading_rotation"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:visibility="gone" />

通过这个:android:indeterminateDrawable="@anim/loading_rotation"我创建了一个旋转的图片。

要设置动画,只需创建一个 xml 文件,将其放在名为 anim 的文件夹中:

<?xml version="1.0" encoding="utf-8"?>

<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/iconloading"
android:pivotX="50%"
android:pivotY="50%" />

正在加载的图片是iconloading.

希望这对您有所帮助。

您可以使用 TweetTimelineListAdapter.registerDataSetObserver 观察适配器更改并在等待初始数据更改事件时显示加载指示器。

例如在 ListFragment 中:

    public void onStart() {
        ...
        final TweetTimelineListAdapter adapter = ...
        adapter.registerDataSetObserver(new DataSetObserver() {
            @Override
            public void onChanged() {    
                setListShown(true);
            }
        });
        setListAdapter(adapter);
        setListShown(false);
}