Firestore: как изменить mCollection.orderBy с помощью viewpager (Android) - PullRequest
0 голосов
/ 20 января 2020

Я хочу изменить filter / orderBy с помощью viewpager, и мой viewpager в MainActivity выглядит следующим образом

    viewPager = findViewById(R.id.viewpager);
    viewPagerAdapter= new ViewPagerAdapter(getSupportFragmentManager());
    viewPagerAdapter.AddFragment(new HomeFragment(),"Recent");
    viewPagerAdapter.AddFragment(new HomeFragment(),"Score");
    viewPager.setAdapter(viewPagerAdapter);

У меня есть запрос (position 0) по умолчанию onCreateView (HomeFagment), например

mQuery = mCollection.orderBy("time", Query.Direction.DESCENDING);

Я пытался с этим, и порядок не изменился на "оценка"

viewPagerMain.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageSelected(int position) {
                switch (position){
                    case 0 :
                        mQuery = mPostsCollection.orderBy("time", Query.Direction.DESCENDING);
                        mAdapter.refresh();
                        break;
                    case 1 :
                        mQuery = mPostsCollection.orderBy("score", Query.Direction.DESCENDING);
                        mAdapter.refresh();
                        break;
            }

        });

final PagedList.Config mConfig = new PagedList.Config.Builder()
                .setEnablePlaceholders(false)
                .setPrefetchDistance(2)
                .setPageSize(3)
                .build();

FirestorePagingOptions<Post> options = new FirestorePagingOptions.Builder<Post>()
                .setLifecycleOwner(this)
                .setQuery(mQuery, mConfig, Post.class)
                .build();
...