C_lionking 2020-05-19 09:07 采纳率: 33.3%
浏览 521
已采纳

关于Android ViewPager+Fragment,在Fragment里弹框的问题

一共三个Fragment,每次我想在请求网络的之前弹出一个等待框。但都要等到网络请求完毕,并且Fragment里的数据都更新完了这个框才弹出来。我打断点一步一步走也是,dialog.show()都已经执行过了,但手机上框还没有弹出来 , 一直走到adapter.notifyDataSetChanged()把数据更新了才弹出来。

这是我的Fragment

public class FindFragment extends Fragment

这个changeRandBook()方法是写到上面那个FindFagment里的,一直到最后randAdapter.notifyDataSetChanged(),框才弹出来

private void changeRandBook()
    {
        WaitDialog waitDialog = new WaitDialog(getContext());
        waitDialog.show();

        List<String> nameList = new ArrayList<>(SIZE);
        nameList.add(PARAM_ACTION);
        nameList.add(PARAM_RAND_COUNT);

        List<String> valueList = new ArrayList<>(SIZE);
        valueList.add(ACTION_RAND_LIST);
        valueList.add(RAND_COUNT);

        try(Response response = createRequestCall(ROOT_URL + BOOK_URL , nameList , valueList))
        {
            List<Book> tempList = new Gson().fromJson(response.body().string() , new TypeToken<List<Book>>(){}.getType());
            randBookList.clear();
            randBookList.addAll(tempList);
            randAdapter.notifyDataSetChanged();
        }
        catch(IOException e)
        {
            e.printStackTrace();
        }
    }

求帮助!卡了两天了

展开全部

  • 写回答

2条回答 默认 最新

  • Xia_燚 2020-05-20 02:00
    关注

    在此之前有个问题,就是ViewPager与Fragment 懒加载你处理了没有?
    如果你没有处理的话, 当你打开第一个Fragment的时候,已经初始化了第二个Fragment的View,有一种情况就是 三个Fragment 你只弹出一个等待的加载页面的弹窗。

    还有就是 在页面初始化onCreateView 方法中初始化 WaitDialog waitDialog = new WaitDialog(getContext());

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部