1
0
Fork 0
mirror of https://github.com/MatomoCamp/matomocamp-companion-android.git synced 2024-09-19 16:13:46 +02:00

NextLiveListFragment and NowLiveListFragment now share the same RecycledViewPool

This commit is contained in:
Christophe Beyls 2016-12-16 02:00:54 +01:00
parent 6246671c38
commit 1348da72d4
2 changed files with 33 additions and 6 deletions

View file

@ -2,6 +2,7 @@ package be.digitalia.fosdem.fragments;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.LoaderManager.LoaderCallbacks;
import android.support.v4.content.Loader;
import android.support.v7.widget.DividerItemDecoration;
@ -24,6 +25,11 @@ public abstract class BaseLiveListFragment extends RecyclerViewFragment implemen
@Override
protected void onRecyclerViewCreated(RecyclerView recyclerView, Bundle savedInstanceState) {
Fragment parentFragment = getParentFragment();
if (parentFragment instanceof RecycledViewPoolProvider) {
recyclerView.setRecycledViewPool(((RecycledViewPoolProvider) parentFragment).getRecycledViewPool());
}
recyclerView.setLayoutManager(new LinearLayoutManager(recyclerView.getContext()));
recyclerView.addItemDecoration(new DividerItemDecoration(recyclerView.getContext(), DividerItemDecoration.VERTICAL));
recyclerView.setAdapter(adapter);

View file

@ -6,28 +6,49 @@ import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import be.digitalia.fosdem.R;
import be.digitalia.fosdem.widgets.SlidingTabLayout;
import be.digitalia.fosdem.R;
public class LiveFragment extends Fragment implements RecycledViewPoolProvider {
public class LiveFragment extends Fragment {
static class ViewHolder {
ViewPager pager;
SlidingTabLayout slidingTabs;
RecyclerView.RecycledViewPool recycledViewPool;
}
private ViewHolder holder;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_live, container, false);
ViewPager pager = (ViewPager) view.findViewById(R.id.pager);
pager.setAdapter(new LivePagerAdapter(getChildFragmentManager(), getResources()));
SlidingTabLayout slidingTabs = (SlidingTabLayout) view.findViewById(R.id.sliding_tabs);
slidingTabs.setViewPager(pager);
holder = new ViewHolder();
holder.pager = (ViewPager) view.findViewById(R.id.pager);
holder.pager.setAdapter(new LivePagerAdapter(getChildFragmentManager(), getResources()));
holder.slidingTabs = (SlidingTabLayout) view.findViewById(R.id.sliding_tabs);
holder.slidingTabs.setViewPager(holder.pager);
holder.recycledViewPool = new RecyclerView.RecycledViewPool();
return view;
}
@Override
public void onDestroyView() {
super.onDestroyView();
holder = null;
}
@Override
public RecyclerView.RecycledViewPool getRecycledViewPool() {
return (holder == null) ? null : holder.recycledViewPool;
}
private static class LivePagerAdapter extends FragmentPagerAdapter {
private final Resources resources;