目录
(2)练习一:如何使用ViewPager+PagerAdapter完成以下案例
3、ViewPager和Fragment结合使用(直接上代码)
是Android中专门用来实现左右滑动切换View效果的系统控件
1、如何在Aandroid Studio 中展示
PagerAdapter是专门为ViewPager适配数据的适配器,主要方法有:
1、getcount()获取ViewPager显示个数
2、instantiateltem()实例化数据集合在的每一个数据
3、destroyltem()当前项离开屏幕时执行的方法
4、isViewFromObject()判断view和obj是否为同一个View
(1)如何使用ViewPager+PagerAdapter
1、准备ViewPager控件
<android.support.v4.ViewPager/>
2、准备数据源
LayoutInflater inflater=getLayoutInflater();
View view1 = inflater.inflate(R.layout.layout1, null);
ArrayList<View>() viewList = new ArrayList<View>();
viewList.add(view1);
MyAdapter myAdapter=new MyAdapter(this,viewList);
viewPager.setAdapter(myAdapter);
3、自定义MyAdter继承PagerAdapter,重现四个方法
public class MyAdapter extends PagerAdapter {
public int getCount() {
return viewList .size();}
public boolean isViewFromObject(View view, Object object) {
return view==object; }
public Object instantiateItem(ViewGroup container, int position) {
return view.addView(viewList.get(position));
}
public void destroyItem(ViewGroup container, int position, Object object) {
view.removeView(viewList.get(position)); }
图文讲解
(2)练习一:如何使用ViewPager+PagerAdapter完成以下案例
2、ViewPager常用的方法
方法一:
onPageScrolled(int position, float positionOffset, int positionOffsetPixels)
说明:
页面滑动状态停止前一直调用
常量说明:
position:当前点击滑动页面的位置
positionOffset:当前页面偏移的百分比(一般写0)
positionOffsetPixels:当前页面偏移的像素位置
方法二:
onPageSelected(int position)
说明:
滑动后显示的页面和滑动前不同,调用
常量说明:
position:选中显示页面的位置
方法三:
onPageScrollStateChanged(int state)
说明:
页面状态改变时调用
常量说明:
STATE:当前页面的状态
SCROLL_STATE_IDLE:空闲状态
SCROLL_STATE_DRAGGING:滑动状态
SCROLL_STATE_SETTLING:滑动后滑翔的状态
3、ViewPager和Fragment结合使用(直接上代码)
1、创建Fragment
public class PagerFragment extends Fragment {
String mContent;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mContent = (String) getArguments().get("content");
View view = inflater.inflate(R.layout.fragment_pager, container, false) ;
TextView textView = (TextView) view.findViewById(R.id.tv);
textView.setText(mContent);
return view;
}
}
2、创建Xml、
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.strivestay.viewpagerdemo.PagerFragment">
<TextView
android:id="@+id/tv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:textSize="18sp"
android:text="@string/hello_blank_fragment"/>
</FrameLayout>
3、给ViewPager设置数据和适配器
final List<PagerFragment> list = new ArrayList<>();
for (int i = 0; i < 5; i++) {
PagerFragment fragment = new PagerFragment();
Bundle bundle = new Bundle();
bundle.putString("content","第"+i+"个Fragment");
fragment.setArguments(bundle);
list.add(fragment);
}
ViewPager vp = (ViewPager) findViewById(R.id.vp);
vp.setAdapter(new FragmentStatePagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int position) {
return list.get(position);
}
@Override
public int getCount() {
return list.size();
}
});
(1)代码思路
非常简单,非常的方便