Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 加载包含大量数据的片段时关闭抽屉的延迟_Android_Android Fragments - Fatal编程技术网

Android 加载包含大量数据的片段时关闭抽屉的延迟

Android 加载包含大量数据的片段时关闭抽屉的延迟,android,android-fragments,Android,Android Fragments,在我没有加载大量数据的片段上,它们加载得非常快,抽屉也很快关闭 然而,当加载包含大量数据的片段时,抽屉关闭时会有延迟 我已经在主布局上设置了一个进度条,以显示数据加载并将其放入view.post(new Runnable(),但抽屉关闭时仍有延迟。也许我做得不对 在fragments OnCreateView方法中,我有以下内容 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bun

在我没有加载大量数据的片段上,它们加载得非常快,抽屉也很快关闭

然而,当加载包含大量数据的片段时,抽屉关闭时会有延迟

我已经在主布局上设置了一个进度条,以显示数据加载并将其放入view.post(new Runnable(),但抽屉关闭时仍有延迟。也许我做得不对

在fragments OnCreateView方法中,我有以下内容

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_icon_request_list, container, false);

    if (view != null) {
        progressBar = (ProgressBar) getActivity().findViewById(R.id.base_progressSpinner);
        progressBar.setVisibility(View.VISIBLE);
        view.post(new Runnable() {

            @Override
            public void run() {
                try {
                    initCards();
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (PackageManager.NameNotFoundException e) {
                    e.printStackTrace();
                }
            }
        });
    }
    return view;
}
initCards()是完成所有工作的方法。onCreate或onActivityCreated上没有任何工作


我做错了什么?

您可以尝试使用延迟,如下所示:

new Handler().postDelayed(new Runnable() {
    public void run() {
        initCard();
    }
}, 1000);

也许这个链接可以帮助你:-关于View.post(new Runnable(..)的部分如果你像这样发布一个Runnable,它仍然会在UI线程上运行。你要做的是在一个单独的线程中完成这项工作。如果你发布你的initCards()代码,我可以帮助你。用initCards()方法更新了post