1.首先用到的库文件:https://github.com/lianghanzhen/LazyViewPager
2.xml布局:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <com.github.lianghanzhen.LazyViewPager android:id="@+id/lazy_view_pager" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" app:init_lazy_item_offset="0.3" /> <LinearLayout android:layout_width="match_parent" android:layout_height="50dp" android:orientation="horizontal"> <TextView android:id="@+id/txt1" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:gravity="center" android:text="第一个" android:textSize="14sp" /> <TextView android:id="@+id/txt2" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:gravity="center" android:text="第二个" android:textSize="14sp" /> <TextView android:id="@+id/txt3" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:gravity="center" android:text="第三个" android:textSize="14sp" /> <TextView android:id="@+id/txt4" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:gravity="center" android:text="第四个" android:textSize="14sp" /> </LinearLayout> </LinearLayout>3.代码
package com.lushan.adapter; import android.os.Bundle; import android.support.annotation.Nullable; 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.app.AppCompatActivity; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.github.lianghanzhen.LazyFragmentPagerAdapter; import com.github.lianghanzhen.LazyViewPager; /** * Created on lushan * Created date 2017/8/7 10:04 */ public class TestDemo extends AppCompatActivity implements View.OnClickListener { private TextView txt1; private TextView txt2; private TextView txt3; private TextView txt4; private LazyViewPager lazy_view_pager; private TxtFragment1 txtFragment1; private TxtFragment2 txtFragment2; private TxtFragment3 txtFragment3; private TxtFragment4 txtFragment4; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_demo); txt1 = (TextView) findViewById(R.id.txt1); txt2 = (TextView) findViewById(R.id.txt2); txt3 = (TextView) findViewById(R.id.txt3); txt4 = (TextView) findViewById(R.id.txt4); lazy_view_pager = (LazyViewPager) findViewById(R.id.lazy_view_pager); txt1.setOnClickListener(this); txt2.setOnClickListener(this); txt3.setOnClickListener(this); txt4.setOnClickListener(this); lazy_view_pager.setAdapter(new CustomLazyFragmentPagerAdapter(getSupportFragmentManager())); } public class CustomLazyFragmentPagerAdapter extends LazyFragmentPagerAdapter { private CustomLazyFragmentPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(ViewGroup container, int position) { switch (position) { case 0: if (txtFragment1 == null) { txtFragment1 = new TxtFragment1(); } return txtFragment1; case 1: if (txtFragment2 == null) { txtFragment2 = new TxtFragment2(); } return txtFragment2; case 2: if (txtFragment3 == null) { txtFragment3 = new TxtFragment3(); } return txtFragment3; case 3: if (txtFragment4 == null) { txtFragment4 = new TxtFragment4(); } return txtFragment4; } return null; } @Override public int getCount() { return 4; } } @Override public void onClick(View v) { switch (v.getId()) { case R.id.txt1: lazy_view_pager.setCurrentItem(0); break; case R.id.txt2: lazy_view_pager.setCurrentItem(1); break; case R.id.txt3: lazy_view_pager.setCurrentItem(2); break; case R.id.txt4: lazy_view_pager.setCurrentItem(3); break; } } }4.输出: