我有这个小问题。我的自定义View
需要从100毫秒加载到1秒,具体取决于手机的速度。该视图位于Fragment
,但我在MainActivity
中加载数据。有时数据的加载速度比View
中的Fragment
更快,因为数据在视图中不存在,所以它恰好是空白的。
如何将数据输入延迟到View
?
答案 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
中填充数据只会在这种情况下帮助您。