加载数据而不将片段中的活动暂停

时间:2013-12-12 09:11:00

标签: android android-fragments progressdialog

我有一个扩展视图寻呼机的应用。视图寻呼机的每个选项卡都可以从在线数据库中填充,但是我在加载时遇到了一个小问题: - )

我在活动首次启动时使用Asynctask,但这确实破坏了用户体验,因为我希望它更加流畅和互动。 因此,在查看新的更新的zedge应用程序之后,我想对我的片段做同样的事情。

此图片解释了所有内容:

http://i.stack.imgur.com/ryCVc.png

他们的装载很顺利,我也想要我的装,所以我怎么能这样做?

基本上:我希望进度对话框位于片段内,并在加载完成后消失。我知道我知道我可以通过修改可见性来实现,但是如何在用户仍然可以在标签之间滑动的同时将数据从我的在线数据库加载到离线数据库。

3 个答案:

答案 0 :(得分:1)

这应该是你想要的......

class AsyncGet extends AsyncTask<Void,Void,Void>
        {

        private ProgressDialog progressDialog = new ProgressDialog(getSherlockActivity());

        @Override
        protected void onPreExecute() {
            // TODO Auto-generated method stub
            super.onPreExecute();
            progressDialog.setMessage("Getting Information...");
            progressDialog.show();
            progressDialog.setOnCancelListener(new OnCancelListener() {
        @Override
            public void onCancel(DialogInterface arg0) {
            AsyncGet.this.cancel(true);
        }
           });

        }

        @Override
        protected Void doInBackground(Void... arg0) {
            // TODO Auto-generated method stub
            //your stuff here
            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            // TODO Auto-generated method stub
            super.onPostExecute(result);
progressDialog.dismiss();
//Update UI
}
}

答案 1 :(得分:0)

在xml文件中尝试此操作

 <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentBottom="true"
        android:gravity="center"
        android:orientation="horizontal"
        android:visibility="visible" >

        <ProgressBar
            android:id="@+id/loading_time_progress_bar"
            android:layout_width="20dip"
            android:layout_height="20dip"
            android:layout_gravity="center_vertical" />
    </LinearLayout>

答案 2 :(得分:0)

您可以通过在每个片段布局中添加进度条来实现此目的。将此进度条“可见”和所有其他布局“消失”,直到您加载UI的所有数据。为每个单独的片段执行此操作。数据加载完成后,您的UI 可见。这样它就不会停止导航,因为它不是进度对话框,而是布局中的进度条。

希望它会有所帮助。