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.database.Cursor;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.LoaderManager.LoaderCallbacks; import android.support.v4.app.LoaderManager.LoaderCallbacks;
import android.support.v4.content.Loader; import android.support.v4.content.Loader;
import android.support.v7.widget.DividerItemDecoration; import android.support.v7.widget.DividerItemDecoration;
@ -24,6 +25,11 @@ public abstract class BaseLiveListFragment extends RecyclerViewFragment implemen
@Override @Override
protected void onRecyclerViewCreated(RecyclerView recyclerView, Bundle savedInstanceState) { 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.setLayoutManager(new LinearLayoutManager(recyclerView.getContext()));
recyclerView.addItemDecoration(new DividerItemDecoration(recyclerView.getContext(), DividerItemDecoration.VERTICAL)); recyclerView.addItemDecoration(new DividerItemDecoration(recyclerView.getContext(), DividerItemDecoration.VERTICAL));
recyclerView.setAdapter(adapter); 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.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import be.digitalia.fosdem.R;
import be.digitalia.fosdem.widgets.SlidingTabLayout; 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 @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_live, container, false); View view = inflater.inflate(R.layout.fragment_live, container, false);
ViewPager pager = (ViewPager) view.findViewById(R.id.pager); holder = new ViewHolder();
pager.setAdapter(new LivePagerAdapter(getChildFragmentManager(), getResources())); holder.pager = (ViewPager) view.findViewById(R.id.pager);
SlidingTabLayout slidingTabs = (SlidingTabLayout) view.findViewById(R.id.sliding_tabs); holder.pager.setAdapter(new LivePagerAdapter(getChildFragmentManager(), getResources()));
slidingTabs.setViewPager(pager); holder.slidingTabs = (SlidingTabLayout) view.findViewById(R.id.sliding_tabs);
holder.slidingTabs.setViewPager(holder.pager);
holder.recycledViewPool = new RecyclerView.RecycledViewPool();
return view; 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 static class LivePagerAdapter extends FragmentPagerAdapter {
private final Resources resources; private final Resources resources;