C_lionking
C_lionking
采纳率60%
2020-05-19 17:07 阅读 316

关于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条回答 默认 最新

  • 已采纳
    MacaoPark Xia_燚 2020-05-20 10:00

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

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

    点赞 评论 复制链接分享
  • qq_41791552 qq_41791552 2020-10-26 15:33

    您好,我想请教一下,我的frament中放的是recycleview数据列表,我想在数据加载之前弹出一个正在加载中的弹框,在数据加载完成,并成功显示之后将弹出框去去掉。现在我遇到的问题是,我数据加载完成之后,弹框就消失了,但数据在页面上海没有显示,所以不知道将dimiss放在哪个地方?

    点赞 评论 复制链接分享

相关推荐