将Fragment与viewpager绑定,通过viewpager中的touch事件,会进行move事件的滑动处理。
Fragment布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/holo_red_light"><TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="Fragment One" /> </LinearLayout><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/holo_red_light"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="Fragment Two" /> </LinearLayout>Fragment代码:public class FragmentOne extends Fragment { @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {return inflater.inflate(R.layout.fragment_one, container, false);}}public class FragmentTwo extends Fragment {@Nullable@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_Two, container, false);}}
viewpager布局:
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.spreadtrumshitaoli.fragmentscroll.MainActivity"><android.support.v4.view.ViewPager android:id="@+id/view_pager" android:layout_height="match_parent" android:layout_width="match_parent"/></android.support.constraint.ConstraintLayout>
MainActivity代码:
public class MainActivity extends AppCompatActivity {private FragmentOne fragmentOne;private FragmentTwo fragmentTwo; private ViewPager viewPager; private ArrayList<Fragment> mFragmentList = new ArrayList <Fragment>();private FragmentPagerAdapter fragmentPagerAdapter; @Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); } private void init() { viewPager = (ViewPager) findViewById(R.id.view_pager); fragmentOne = new FragmentOne(); fragmentTwo = new FragmentTwo(); mFragmentList.add(fragmentOne); mFragmentList.add(fragmentTwo); //将adapter和fragment绑定在一起。 fragmentPagerAdapter = new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public Fragment getItem(int i) { return mFragmentList != null ? mFragmentList.get(i) : null; } @Override public int getCount() { return mFragmentList != null ? mFragmentList.size() : 0; } }; viewPager.setAdapter(fragmentPagerAdapter); viewPager.setonPageChangeListener(new ViewPager.onPageChangeListener() { @Override public void onPageScrolled(int i, float v, int i1) { } @Override public void onPageSelected(int i) { //TODO: } @Override public void onPageScrollStateChanged(int i) { } }); } } 在这段代码中,我们
首先fragment以及viewpager都实例化;
再将fragment添加到泛型arraylist里;
最后将带有fragment的arraylist和adapter绑定。



