使用recyclerview和Asynctask设置Viewpager

时间:2018-07-10 23:05:01

标签: android android-fragments android-recyclerview android-asynctask android-viewpager

我有一个ViewPager和3个Fragment,并且根据Android文档ViewPager.setOffscreenPageLimit(1);的最小值为1。我在Fragments中有多个ViewPager并且每个Fragment必须从Server加载一些数据时遇到一个问题,为此我要呼叫AsyncTask每个Fragment中的文件以首先获取数据,然后加载到Fragment中。

我可以在Log中看到我正在从Server获取数据,但是一旦我调用第二个Fragment,我就可以看到它也调用了下一个{{1 }} Fragment就是为什么我很难设置onCreateView的原因。我尝试通过在不同情况下也通过RecyclerView来调用Adapter,但没有帮助。

adapter3.notifyDataSetChanged();中的父母Fragment

ViewPager

public class ViewUserProfile extends Fragment{ ViewPager ViewPager; UserProfile_TabAdapter tabAdapter; TabLayout tabLayout; View view; public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) { view = inflater.inflate(R.layout.view_userprofile, container, false); ViewPager = view.findViewById(R.id.up_Viewpager_ViewPager); ViewPager.setOffscreenPageLimit(1); ViewPager.setPageMargin(10); tabAdapter=new TabAdapter(getFragmentManager(),getActivity(),Uda.getFN()); tabLayout= view.findViewById(R.id.up_Viewpager_Tab); tabLayout.setupWithViewPager(userInfo_ViewPager); return view; } } 未加载其数据:

Fragment

1 个答案:

答案 0 :(得分:0)

当片段可见时调用asynctask,将其添加到片段中

编辑

更改您的以下代码

JSONArray followingDataArray = jsonObject.getJSONArray("data2");
                    for (int i = 0; i < followingDataArray.length(); i++) {

                        String image = followerDataArray.getJSONObject(i).getString("getmyUserImage");
                        viewUserProfile_Wrapper followerData = new viewUserProfile_Wrapper(image);
                        followingList.add(followerData);
                    }
                    JSONArray friendDataArray = jsonObject.getJSONArray("data3");
                    for (int i = 0; i < friendDataArray.length(); i++) {

                        String image = followerDataArray.getJSONObject(i).getString("getmyUserImage");
                        viewUserProfile_Wrapper followerData = new viewUserProfile_Wrapper(image);
                        friendsList.add(followerData);
                    }

对此

  JSONArray followingDataArray = jsonObject.getJSONArray("data2");
                    for (int i = 0; i < followingDataArray.length(); i++) {

                        String image = followingDataArray.getJSONObject(i).getString("getmyUserImage");
                        viewUserProfile_Wrapper followerData = new viewUserProfile_Wrapper(image);
                        followingList.add(followerData);
                    }
                    JSONArray friendDataArray = jsonObject.getJSONArray("data3");
                    for (int i = 0; i < friendDataArray.length(); i++) {

                        String image = friendDataArray.getJSONObject(i).getString("getmyUserImage");
                        viewUserProfile_Wrapper followerData = new viewUserProfile_Wrapper(image);
                        friendsList.add(followerData);
                    }

根据I_A_Mok的评论,从中删除返回null

 if (callResult.equals("SUCCESS")){......}