package com.xujun.contralayout.UI.viewPager; import android.os.Build; import android.os.Bundle; import android.support.annotation.RequiresApi; import android.support.design.widget.AppBarLayout; import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.ViewTreeObserver; import com.xujun.contralayout.R; import com.xujun.contralayout.UI.ListFragment; import com.xujun.contralayout.base.BaseFragmentAdapter; import com.xujun.contralayout.base.WriteLogUtil; import java.util.ArrayList; import java.util.List; public class ViewPagerNew extends AppCompatActivity { ViewPager mViewPager; List<Fragment> mFragments; AppBarLayout mAppBarLayout; View mView; private static final String TAG = "ViewPagerNew"; String[] mTitles = new String[]{ "主页", "微博", "相册" }; private int mHeight; View ll_content; private int mHeightContent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_view_pager_new); mView = findViewById(R.id.view); ll_content = findViewById(R.id.ll_content); mViewPager = (ViewPager) findViewById(R.id.viewpager); mAppBarLayout = (AppBarLayout) findViewById(R.id.appBar); mView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) @Override public void onGlobalLayout() { mView.getViewTreeObserver().removeOnGlobalLayoutListener(this); mHeight = findViewById(R.id.headview).getHeight(); mHeightContent = ll_content.getHeight() - findViewById(R.id.tabs).getHeight(); WriteLogUtil.i(" mHeight=" + mHeight); WriteLogUtil.i(" mHeightContent=" + mHeightContent); } }); mAppBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() { @Override public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { int abs = Math.abs(verticalOffset); } }); setupViewPager(); } private void setupViewPager() { final ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager); setupViewPager(viewPager); TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); tabLayout.setupWithViewPager(viewPager); /* TabLayout tabLayout2 = (TabLayout) findViewById(R.id.tab2); tabLayout2.setupWithViewPager(viewPager);*/ } private void setupViewPager(ViewPager viewPager) { mFragments = new ArrayList<>(); for (int i = 0; i < mTitles.length; i++) { ListFragment listFragment = ListFragment.newInstance(mTitles[i]); mFragments.add(listFragment); } BaseFragmentAdapter adapter = new BaseFragmentAdapter(getSupportFragmentManager(), mFragments, mTitles); viewPager.setAdapter(adapter); } }