package com.florianmski.tracktoid.ui.fragments.base.pager;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import com.astuetz.PagerSlidingTabStrip;
import com.florianmski.tracktoid.R;
import com.florianmski.tracktoid.utils.ScrollHeaderHelper;
public abstract class PagerHeaderFragment extends PagerFragment implements ScrollHeaderHelper.OnHeaderListener, ScrollHeaderHelper.Provider
{
protected FrameLayout flHeader;
protected ScrollHeaderHelper shh;
@Override
public void onResume()
{
super.onResume();
getScrollHeaderHelper().addHeaderListener(this);
}
@Override
public void onPause()
{
super.onPause();
getScrollHeaderHelper().removeHeaderListener(this);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
return inflater.inflate(R.layout.fragment_pager_header, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState)
{
super.onViewCreated(view, savedInstanceState);
vp = (ViewPager)view.findViewById(R.id.viewPager);
tabs = (PagerSlidingTabStrip)view.findViewById(R.id.tabs);
flHeader = (FrameLayout)view.findViewById(R.id.frameLayoutHeader);
shh = new ScrollHeaderHelper(flHeader);
}
public ScrollHeaderHelper getScrollHeaderHelper()
{
return shh;
}
@Override
public void onHeaderLayout()
{
int height = getActionBar().getHeight() + tabs.getMeasuredHeight();
// TODO I think there is a better way...
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
{
int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
height += getResources().getDimensionPixelSize(resourceId);
}
shh.setHeightToKeep(height);
}
@Override
public void onHeaderTranslate(int key, float translationY) {}
@Override
public void onPageSelected(int position)
{
super.onPageSelected(position);
getScrollHeaderHelper().setActiveScrollView(position);
}
@Override
public void onPageScrolled(int i, float v, int i2) {}
@Override
public void onPageScrollStateChanged(int i) {}
}