ViewPager不会刷新片段

时间:2017-08-27 14:18:29

标签: android android-fragments android-recyclerview android-viewpager recycler-adapter

我有一个tabView和viewPager
我使用(确切地说是一个)本地数据库来获取数据 当我对我的数据库进行更改时,至少我应该在下一个(或后面)转到2个选项卡,以便在我的viewPager片段中发生更改(我有4个选项卡)
我尝试了很多方法,比如POSITION_NONE和INVALIDATE()...... 但没有改变!!!
任何人都可以帮我刷新我的片段(在当前页面和其他页面上)?

public class FragmentList extends Fragment {
    public static RecyclerView TaskRecyclerView;
    private View view;
    private AdapterTask adapterTask;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        view=inflater.inflate(R.layout.fragment_tasks,container,false);
        TaskRecyclerView =(RecyclerView)view.findViewById(R.id.task_recycler);
        DatabaseOpenHelper databaseOpenHelper=new DatabaseOpenHelper(getContext());
         adapterTask =new AdapterTask(getActivity(),databaseOpenHelper.getTasks());
        TaskRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity(),LinearLayoutManager.VERTICAL,false));
        TaskRecyclerView.setAdapter(adapterTask);
        return view;
    }

    public static FragmentList newInstance() {

        Bundle args = new Bundle();

        FragmentList fragment = new FragmentList();
        fragment.setArguments(args);
        return fragment;
    } 
}

正如我所说,在我更改至少2个标签之前没有发生任何变化(即使在PAGE SELECTED()中)...我的意思是例如当我在我的标签号1中时,我转到标签2然后没有.3,所以no.3刷新新数据,当我回到第1号标签时,它也刷新了 但是2号标签仍然是旧数据!!!
我应该去第4号标签然后回来看第2号标签的变化。

重要更新
正如我所知,我的问题是offScreenPageLimit()没有达到0。
我怎么能把它变成0?

3 个答案:

答案 0 :(得分:1)

在onPageSelected上使用notify方法刷新数据。 您的代码将是

adapterTask.notify();

答案 1 :(得分:0)

您是否尝试过.notifyDataChanged();你的适配器?

答案 2 :(得分:0)

尝试覆盖此方法。此方法将告诉您片段是否可见。

     @Override
        public void setUserVisibleHint(boolean isVisibleToUser) {
            super.setUserVisibleHint(isVisibleToUser);
            if (isVisibleToUser) {
// visible
            }
            else {
            }
        }