与对话框片段结合使用时,吐司显示得较晚

时间:2018-12-15 03:24:07

标签: android android-toast dialogfragment

我有一个适配器类,用于显示缩略图列表。当用户单击缩略图时,它会从URL中检索图像,并花费大约一秒钟的时间,并将其显示在对话框片段中。由于延迟,我希望有个吐司说“获取图像”。但是,直到对话框片段显示时,烤面包才会出现,这毫无意义。

在通话之前和之后,我都尝试移动烤面包片,以制作一个对话框片段,结果仍然相同。我尝试过使用AsyncTask先同步Toast,然后再同步对话框片段,但结果仍然相同。

适配器类:

holder.viewThumbnail.setOnClickListener(v ->
        {
        FetchImage fetchImage = new FetchImage(MainActivity.mainActivity, rootView, position);
        fetchImage.execute();
        });

FetchImage类:

protected final Void doInBackground(WeakReference<Activity>... params)
        {
        if(MainActivity.animalList.get(position).getImage() == null)
            {
            MainActivity mainActivity = weakReferenceActivity.get();
            if(mainActivity != null)
                {
                new Handler(Looper.getMainLooper()).post(() -> Toast.makeText(mainActivity, mainActivity.getString(R.string.fetching_image), Toast.LENGTH_SHORT).show());
                }
            }
        return null;
        }

protected void onPostExecute(Void result)
        {


        super.onPostExecute(result);
        MainActivity mainActivity = weakReferenceActivity.get();
        if(mainActivity != null)
            {
            mainActivity.dialogShow(view, C.NO, C.DIALOG_IMAGE, "", "", position);
            }
        }

我还尝试了在没有AsyncTask路由的适配器类中执行此操作:

适配器类:

holder.viewThumbnail.setOnClickListener(v ->
        {
        if(MainActivity.animalList.get(position).getImage() == null)
            interfaceCommon.makeToast("fetching data", 1);
        interfaceCommon.dialogShow(rootView, C.NO, C.DIALOG_IMAGE, "", "", position);
        });

interfaceCommon只是在Main Activity中调用方法的通用接口。这个应用程式有一个活动,有多个片段。

0 个答案:

没有答案