等到View加载完毕,然后将加载的数据放入其中

时间:2016-09-05 07:46:09

标签: android

我有这个小问题。我的自定义View需要从100毫秒加载到1秒,具体取决于手机的速度。该视图位于Fragment,但我在MainActivity中加载数据。有时数据的加载速度比View中的Fragment更快,因为数据在视图中不存在,所以它恰好是空白的。

如何将数据输入延迟到View

1 个答案:

答案 0 :(得分:0)

有几种方法可以做到这一点。就个人而言,我建议您将ProgressFragment用于此目的。 Here's a nice library在数据仍在加载时显示默认进度动画。

库的实现非常简单。

gradle个依赖项中添加此项。

dependencies {
    compile 'com.github.johnkil.android-progressfragment:progressfragment:1.4.+'
}

现在,您的Fragment应扩展ProgressFragment

public class MyProgressFragment extends ProgressFragment {
    // your code of fragment
}

使用onActivityCreate()方法设置内容视图。

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    // Setup content view
    setContentView(R.layout.content);
}

通过调用onActivityCreated

显示不确定的进度指示器
setContentShown(false);

当数据可用时,请确保在正确的位置显示关联的View

if (this.isAdded()) setContentShown(true);

在实施此库时,您需要记住的一件事是,您需要为View设置父级布局,以显示/隐藏哪个布局ID为android:id="@+id/content_container"

正如我先前所说,还有其他一些方法。如果您浏览Fragment lifecycle,那么当View可用时,您肯定会找到一种填充数据的方法。在onActivityCreated中填充数据只会在这种情况下帮助您。