【Android基础笔记21】ViewPager
来源:互联网 发布:ipsec提供网络层之上 编辑:程序博客网 时间:2024/06/11 03:50
public class MainActivity extends Activity {
private ViewPager viewPager;
private int[] images={R.drawable.txt_theme12,R.drawable.txt_theme14,R.drawable.txt_theme30};
private List<ImageView> list;
private ImageView[] icons;//存储指示图片的数组
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager=(ViewPager) findViewById(R.id.viewpager);
list=new ArrayList<ImageView>();
for(int i=0;i<images.length;i++){
ImageView imageView=new ImageView(this);
imageView.setImageResource(images[i]);
list.add(imageView);
}
viewPager.setAdapter(new MyPagerAdapter());
viewPager.setOffscreenPageLimit(2);//设置viewpager预加载的page的个数的限制
initicons();
/*
* 表示当前测viewpager中的page的状态发生改变时回调的接口
*/
viewPager.setOnPageChangeListener(new OnPageChangeListener() {
/*
* 表示当一个新的page界面被选中时回调的方法
* 参数表示 当前选择的page在viewpager中的下标
*/
@Override
public void onPageSelected(int position) {
//通过循环将指示性的图片全部设置为未选中状态
for(int i=0;i<images.length;i++){
icons[i].setEnabled(true);
}
icons[position].setEnabled(false);//根据下标找到当前选中图片对应的imageview 设置为选中
}
/*
* 表示当viewpager中的page发生滚动时回调的方法
* 第一个参数表示 当前滚动的page的下标
* 第二个参数表示 当前page页滑动的偏移量 [0,1)
* 第三个参数表示 当前page页滑动的偏移量 像素值表示
*/
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
//System.out.println("--------onPageScrolled------"+positionOffset);
//System.out.println("----onPageScrolled--"+positionOffsetPixels);
}
/*
* 表示当前viewpager中的page的状态改变的时候回调的方法
* 参数表示 当前page页的状态
* SCROLL_STATE_DRAGGING 正在滑动状态
* SCROLL_STATE_IDLE 停止滑动状态
* SCROLL_STATE_SETTLING 选中状态
*/
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
/**
* 初始化指示性图片的方法
*/
public void initicons(){
LinearLayout linearLayout=(LinearLayout) findViewById(R.id.linearLayout);
icons=new ImageView[images.length];//初始化指示性图片的存储数组
for(int i=0;i<images.length;i++){
icons[i]=(ImageView) linearLayout.getChildAt(i);//以此从LinearLayout中取出imageview 存放到icons数组中
icons[i].setEnabled(true);
icons[i].setTag(i);//给指示性图片添加下标指示
//指示性图片添加单击事件
icons[i].setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 将viewpager中的page页设置为指定的下标
viewPager.setCurrentItem((Integer) v.getTag()); //单击那个指示图标 就将该指示图片下标对应的page展示
}
});
}
icons[0].setEnabled(false);//icons数组中的第一个imageview默认显示选中状态的图片
}
/**
* 继承pageradapter的适配器
*
*/
public class MyPagerAdapter extends PagerAdapter{
@Override
public int getCount() {
return list.size();
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(list.get(position));
return list.get(position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(list.get(position));
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0==arg1;
}
}
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<android.support.v4.view.PagerTitleStrip
android:id="@+id/pagerTile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
</android.support.v4.view.PagerTitleStrip>
</android.support.v4.view.ViewPager>
public class MainActivity extends Activity {
private ViewPager viewPager;
private PagerTitleStrip pagerTitleStrip;
private List<View> views;
private List<String> titles;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager=(ViewPager) findViewById(R.id.viewpager);
pagerTitleStrip=(PagerTitleStrip) findViewById(R.id.pagerTile);
// viewpager中的page页面添加内容
views=new ArrayList<View>();
views.add(LayoutInflater.from(this).inflate(R.layout.activity_page1, null));
views.add(LayoutInflater.from(this).inflate(R.layout.activity_page2, null));
views.add(LayoutInflater.from(this).inflate(R.layout.activity_page3, null));
views.add(LayoutInflater.from(this).inflate(R.layout.activity_page4, null));
titles=new ArrayList<String>();
titles.add("新闻");
titles.add("头条");
titles.add("娱乐");
titles.add("体育");
viewPager.setAdapter(new MyPagerAdapter());
}
public class MyPagerAdapter extends PagerAdapter{
@Override
public int getCount() {
return views.size();
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(views.get(position));
return views.get(position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(views.get(position));
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0==arg1;
}
//android.support.v4.view.PagerTitleStrip给page界面添加标题 给控件填充标题内容
@Override
public CharSequence getPageTitle(int position) {
return titles.get(position);
}
}
}
public class MainActivity extends FragmentActivity {private ViewPager viewPager;private LinearLayout linearLayout;private TextView[] titles;private List<Fragment> fragments;//viewpager的数据源@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);viewPager=(ViewPager) findViewById(R.id.viewpager);linearLayout=(LinearLayout) findViewById(R.id.linearlayout);initTitles();initViewPager();}//针对viewpager测操作的方法public void initViewPager(){fragments=new ArrayList<Fragment>();Bundle bundle=new Bundle();// 头条Fragment fragment1=new FragmentShow();bundle.putInt("tabIndex",1);fragment1.setArguments(bundle);//新闻Fragment fragment2=new FragmentShow();bundle=new Bundle();bundle.putInt("tabIndex", 2);fragment2.setArguments(bundle);//娱乐Fragment fragment3=new FragmentShow();bundle=new Bundle();bundle.putInt("tabIndex",3);fragment3.setArguments(bundle);fragments.add(fragment1);fragments.add(fragment2);fragments.add(fragment3);viewPager.setAdapter(new MyFragmentPagerAdapter(getSupportFragmentManager()));viewPager.setOnPageChangeListener(new OnPageChangeListener() {@Overridepublic void onPageSelected(int position) {for(int i=0;i<fragments.size();i++){titles[i].setBackgroundColor(Color.WHITE);}titles[position].setBackgroundColor(Color.GREEN);}@Overridepublic void onPageScrolled(int position, float arg1, int arg2) {}@Overridepublic void onPageScrollStateChanged(int state) {}});}/** * 如果viewpager中的每个page中显示的是fragment可以使用FragmentPagerAdapter适配数据 * */public class MyFragmentPagerAdapter extends FragmentPagerAdapter{public MyFragmentPagerAdapter(FragmentManager fm) {super(fm);}/* 表示根据指定的下标返回page中对应的fragment */@Overridepublic Fragment getItem(int position) {return fragments.get(position);}/*表示当前适配器中的条目数量 */@Overridepublic int getCount() {return fragments.size();}}//初始化标题栏 导航public void initTitles(){titles=new TextView[3];//将导航的textview存放到textview类型的数组中for(int i=0;i<3;i++){titles[i]=(TextView) linearLayout.getChildAt(i);titles[i].setBackgroundColor(Color.WHITE);//将textview导航的背景默认设置为白色titles[i].setTag(i);titles[i].setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {viewPager.setCurrentItem((Integer) v.getTag());}});}titles[0].setBackgroundColor(Color.GREEN);//默认选中的page的第一个 所以将textview的第一个导航设置绿色 选中状态}}
ViewPager
public class MainActivity extends Activity {
private ViewPager viewPager;
private int[] images={R.drawable.txt_theme12,R.drawable.txt_theme14,R.drawable.txt_theme30};
private List<ImageView> list;
private ImageView[] icons;//存储指示图片的数组
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager=(ViewPager) findViewById(R.id.viewpager);
list=new ArrayList<ImageView>();
for(int i=0;i<images.length;i++){
ImageView imageView=new ImageView(this);
imageView.setImageResource(images[i]);
list.add(imageView);
}
viewPager.setAdapter(new MyPagerAdapter());
viewPager.setOffscreenPageLimit(2);//设置viewpager预加载的page的个数的限制
initicons();
/*
* 表示当前测viewpager中的page的状态发生改变时回调的接口
*/
viewPager.setOnPageChangeListener(new OnPageChangeListener() {
/*
* 表示当一个新的page界面被选中时回调的方法
* 参数表示 当前选择的page在viewpager中的下标
*/
@Override
public void onPageSelected(int position) {
//通过循环将指示性的图片全部设置为未选中状态
for(int i=0;i<images.length;i++){
icons[i].setEnabled(true);
}
icons[position].setEnabled(false);//根据下标找到当前选中图片对应的imageview 设置为选中
}
/*
* 表示当viewpager中的page发生滚动时回调的方法
* 第一个参数表示 当前滚动的page的下标
* 第二个参数表示 当前page页滑动的偏移量 [0,1)
* 第三个参数表示 当前page页滑动的偏移量 像素值表示
*/
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
//System.out.println("--------onPageScrolled------"+positionOffset);
//System.out.println("----onPageScrolled--"+positionOffsetPixels);
}
/*
* 表示当前viewpager中的page的状态改变的时候回调的方法
* 参数表示 当前page页的状态
* SCROLL_STATE_DRAGGING 正在滑动状态
* SCROLL_STATE_IDLE 停止滑动状态
* SCROLL_STATE_SETTLING 选中状态
*/
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
/**
* 初始化指示性图片的方法
*/
public void initicons(){
LinearLayout linearLayout=(LinearLayout) findViewById(R.id.linearLayout);
icons=new ImageView[images.length];//初始化指示性图片的存储数组
for(int i=0;i<images.length;i++){
icons[i]=(ImageView) linearLayout.getChildAt(i);//以此从LinearLayout中取出imageview 存放到icons数组中
icons[i].setEnabled(true);
icons[i].setTag(i);//给指示性图片添加下标指示
//指示性图片添加单击事件
icons[i].setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 将viewpager中的page页设置为指定的下标
viewPager.setCurrentItem((Integer) v.getTag()); //单击那个指示图标 就将该指示图片下标对应的page展示
}
});
}
icons[0].setEnabled(false);//icons数组中的第一个imageview默认显示选中状态的图片
}
/**
* 继承pageradapter的适配器
*
*/
public class MyPagerAdapter extends PagerAdapter{
@Override
public int getCount() {
return list.size();
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(list.get(position));
return list.get(position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(list.get(position));
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0==arg1;
}
}
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<android.support.v4.view.PagerTitleStrip
android:id="@+id/pagerTile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
</android.support.v4.view.PagerTitleStrip>
</android.support.v4.view.ViewPager>
public class MainActivity extends Activity {
private ViewPager viewPager;
private PagerTitleStrip pagerTitleStrip;
private List<View> views;
private List<String> titles;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager=(ViewPager) findViewById(R.id.viewpager);
pagerTitleStrip=(PagerTitleStrip) findViewById(R.id.pagerTile);
// viewpager中的page页面添加内容
views=new ArrayList<View>();
views.add(LayoutInflater.from(this).inflate(R.layout.activity_page1, null));
views.add(LayoutInflater.from(this).inflate(R.layout.activity_page2, null));
views.add(LayoutInflater.from(this).inflate(R.layout.activity_page3, null));
views.add(LayoutInflater.from(this).inflate(R.layout.activity_page4, null));
titles=new ArrayList<String>();
titles.add("新闻");
titles.add("头条");
titles.add("娱乐");
titles.add("体育");
viewPager.setAdapter(new MyPagerAdapter());
}
public class MyPagerAdapter extends PagerAdapter{
@Override
public int getCount() {
return views.size();
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(views.get(position));
return views.get(position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(views.get(position));
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0==arg1;
}
//android.support.v4.view.PagerTitleStrip给page界面添加标题 给控件填充标题内容
@Override
public CharSequence getPageTitle(int position) {
return titles.get(position);
}
}
}
public class MainActivity extends FragmentActivity {private ViewPager viewPager;private LinearLayout linearLayout;private TextView[] titles;private List<Fragment> fragments;//viewpager的数据源@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);viewPager=(ViewPager) findViewById(R.id.viewpager);linearLayout=(LinearLayout) findViewById(R.id.linearlayout);initTitles();initViewPager();}//针对viewpager测操作的方法public void initViewPager(){fragments=new ArrayList<Fragment>();Bundle bundle=new Bundle();// 头条Fragment fragment1=new FragmentShow();bundle.putInt("tabIndex",1);fragment1.setArguments(bundle);//新闻Fragment fragment2=new FragmentShow();bundle=new Bundle();bundle.putInt("tabIndex", 2);fragment2.setArguments(bundle);//娱乐Fragment fragment3=new FragmentShow();bundle=new Bundle();bundle.putInt("tabIndex",3);fragment3.setArguments(bundle);fragments.add(fragment1);fragments.add(fragment2);fragments.add(fragment3);viewPager.setAdapter(new MyFragmentPagerAdapter(getSupportFragmentManager()));viewPager.setOnPageChangeListener(new OnPageChangeListener() {@Overridepublic void onPageSelected(int position) {for(int i=0;i<fragments.size();i++){titles[i].setBackgroundColor(Color.WHITE);}titles[position].setBackgroundColor(Color.GREEN);}@Overridepublic void onPageScrolled(int position, float arg1, int arg2) {}@Overridepublic void onPageScrollStateChanged(int state) {}});}/** * 如果viewpager中的每个page中显示的是fragment可以使用FragmentPagerAdapter适配数据 * */public class MyFragmentPagerAdapter extends FragmentPagerAdapter{public MyFragmentPagerAdapter(FragmentManager fm) {super(fm);}/* 表示根据指定的下标返回page中对应的fragment */@Overridepublic Fragment getItem(int position) {return fragments.get(position);}/*表示当前适配器中的条目数量 */@Overridepublic int getCount() {return fragments.size();}}//初始化标题栏 导航public void initTitles(){titles=new TextView[3];//将导航的textview存放到textview类型的数组中for(int i=0;i<3;i++){titles[i]=(TextView) linearLayout.getChildAt(i);titles[i].setBackgroundColor(Color.WHITE);//将textview导航的背景默认设置为白色titles[i].setTag(i);titles[i].setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {viewPager.setCurrentItem((Integer) v.getTag());}});}titles[0].setBackgroundColor(Color.GREEN);//默认选中的page的第一个 所以将textview的第一个导航设置绿色 选中状态}}
- 【Android基础笔记21】ViewPager
- Android开发笔记—ViewPager的基础使用
- android 基础 ---> ViewPager
- android笔记11-ViewPager
- Android基础应用之 ViewPager
- 0906Android基础ViewPager+Fragment
- Android ViewPager详解:基础篇
- Android基础:ListView + ViewPager ( 一 )
- Android基础:ListView + ViewPager ( 二 )
- Android基础:ListView + ViewPager ( 三 )
- Android基础:ListView + ViewPager ( 四 )
- Android基础:ListView + ViewPager ( 五 )
- android基础---ViewPager与fragment
- Android的 ViewPager 学习笔记
- Android的 ViewPager 学习笔记
- android ViewPager学习笔记1
- android ViewPager学习笔记3
- android 控件学习笔记 --------ViewPager
- [生存志] 第106节 韩非孤愤说难
- request,response,session,cookie,application
- Apache POI
- JUnit
- spring常见问题以及解决方法
- 【Android基础笔记21】ViewPager
- SpringBoot项目实战--Servlet、Filter、拦截器
- ionic slide-box(滑动框)
- Effective C++读书笔记之尽可能使用const
- ubuntu 14.04 搭建 nfs
- C++中命名空间的意义和用法
- jackson 框架 与 json-lib框架
- Linux进程间通信——pipe应用实例
- UVA 1405 The Great Wall Game(最佳二分图匹配)