ViewPager页卡
来源:互联网 发布:中国技术壁垒知乎 编辑:程序博客网 时间:2024/04/30 15:55
ViewPager
<android.support.v4.view.ViewPager/>
1、加载显示的页卡
Layout布局转换为View对象
i:LayoutInflater If= getLayoutInflater().from(this);
If.inflate(resource,root);
ii:View.inflate(context,resource,root);
ViewPager相当于一个容器,可以重装View的对象或者是fragment对象
2、配置Adapter
i:PagerAdapter 数据源:List<View>
ii:FragmentPagerAdapter 数据源:List<Fragment>
iii:FragmentStatePagerAdapter 数据源:List<Fragment>
-------------------------------------------------------
<android.support.v4.view.ViewPager
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:id="@+id/viewpager"
/>
--------------------------------------------------------
private List<View> viewlist;//view数组
private View view1,view2,view3;
private ViewPager viewpager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
viewpager = (ViewPager) findViewById(R.id.viewpager);
LayoutInflater layoutinflater = getLayoutInflater();//或者View view1=View.inflate(this,R.layout.view1,null);
view1 = layoutinflater.inflate(R.layout.view1, null);
view2 = layoutinflater.inflate(R.layout.view2, null);
view3 = layoutinflater.inflate(R.layout.view3, null);
viewlist =new ArrayList<View>();// 将要分页显示的View装入数组中
viewlist.add(view1);
viewlist.add(view2);
viewlist.add(view3);
PagerAdapter pageradapter = new PagerAdapter() {
@Override
public void startUpdate(View arg0) {
// TODO 自动生成的方法存根
}
@Override
public Parcelable saveState() {
// TODO 自动生成的方法存根
return null;
}
@Override
public void restoreState(Parcelable arg0, ClassLoader arg1) {
// TODO 自动生成的方法存根
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO 自动生成的方法存根
return arg0==arg1;
}
@Override
public Object instantiateItem(View arg0, int arg1) {
// TODO 自动生成的方法存根
((ViewPager)arg0).addView(viewlist.get(arg1));
return viewlist.get(arg1);
}
@Override
public int getCount() {
// TODO 自动生成的方法存根
return viewlist.size();
}
@Override
public void finishUpdate(View arg0) {
// TODO 自动生成的方法存根
}
@Override
public void destroyItem(View arg0, int arg1, Object arg2) {
// TODO 自动生成的方法存根
((ViewPager)arg0).removeView(viewlist.get(arg1));
}
};
viewpager.setAdapter(pageradapter);
}
-----------------------------------------------------------------------------------------
PagerTitle
1、首先,文中提到:在你的布局文件中,将它作为子控件添加在ViewPager中。
<android.support.v4.view.PagerTitleStrip />
2、第二,标题的获取,是重写适配器的getPageTitle(int)函数来获取的。
-------------------------------
<android.support.v4.view.PagerTitleStrip
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:id="@+id/title"
/>
-------------------------------
public CharSequence getPageTitle(int position) {
// TODO Auto-generated method stub
return titlelist.get(position);
}
----------------------------------------
PagerTabStrip :适合交互
private PagerTabStrip tab;
//为PagerTabStrip配色
tab = (PagerTabStrip) findViewById(R.id.title);
tab.setBackgroundColor(Color.BLUE);
tab.setDrawFullUnderline(false);
tab.setTextColor(Color.WHITE);
tab.setTabIndicatorColor(Color.GRAY);
-----------------------------------------------
FragmentPagerAdapter
=第四个不会销毁=上面的会
private List<Fragment>list;
private List<String>title;
public MyFragmentStateAdapter(FragmentManager fm, List<Fragment> fragmentlist,List<String> titlelist) {
super(fm);
// TODO 自动生成的构造函数存根
//this.list = fragmentlist;
//this.title=titlelist;
list = fragmentlist;
title=titlelist;
}
@Override
public Fragment getItem(int arg0) {
// TODO 自动生成的方法存根
return list.get(arg0);
}
@Override
public int getCount() {
// TODO 自动生成的方法存根
return list.size();
}
@Override
public CharSequence getPageTitle(int position) {
// TODO 自动生成的方法存根
return title.get(position);
}
}
-----------------------------------------------------------
再在activity里面声明各个Fragment和将适配器加载到视图即可。
-----------------------------------------------------------
FragmentStatePagerAdapter:=第四个会销毁=
@Override
public Object instantiateItem(ViewGroup arg0, int arg1) {
// TODO 自动生成的方法存根
return super.instantiateItem(arg0, arg1);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// TODO 自动生成的方法存根
super.destroyItem(container, position, object);
}
------------------------补充这2个方法,但不需要改写-----------------------------
在activity加载适配器即可
<android.support.v4.view.ViewPager/>
1、加载显示的页卡
Layout布局转换为View对象
i:LayoutInflater If= getLayoutInflater().from(this);
If.inflate(resource,root);
ii:View.inflate(context,resource,root);
ViewPager相当于一个容器,可以重装View的对象或者是fragment对象
2、配置Adapter
i:PagerAdapter 数据源:List<View>
ii:FragmentPagerAdapter 数据源:List<Fragment>
iii:FragmentStatePagerAdapter 数据源:List<Fragment>
-------------------------------------------------------
<android.support.v4.view.ViewPager
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:id="@+id/viewpager"
/>
--------------------------------------------------------
private List<View> viewlist;//view数组
private View view1,view2,view3;
private ViewPager viewpager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
viewpager = (ViewPager) findViewById(R.id.viewpager);
LayoutInflater layoutinflater = getLayoutInflater();//或者View view1=View.inflate(this,R.layout.view1,null);
view1 = layoutinflater.inflate(R.layout.view1, null);
view2 = layoutinflater.inflate(R.layout.view2, null);
view3 = layoutinflater.inflate(R.layout.view3, null);
viewlist =new ArrayList<View>();// 将要分页显示的View装入数组中
viewlist.add(view1);
viewlist.add(view2);
viewlist.add(view3);
PagerAdapter pageradapter = new PagerAdapter() {
@Override
public void startUpdate(View arg0) {
// TODO 自动生成的方法存根
}
@Override
public Parcelable saveState() {
// TODO 自动生成的方法存根
return null;
}
@Override
public void restoreState(Parcelable arg0, ClassLoader arg1) {
// TODO 自动生成的方法存根
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO 自动生成的方法存根
return arg0==arg1;
}
@Override
public Object instantiateItem(View arg0, int arg1) {
// TODO 自动生成的方法存根
((ViewPager)arg0).addView(viewlist.get(arg1));
return viewlist.get(arg1);
}
@Override
public int getCount() {
// TODO 自动生成的方法存根
return viewlist.size();
}
@Override
public void finishUpdate(View arg0) {
// TODO 自动生成的方法存根
}
@Override
public void destroyItem(View arg0, int arg1, Object arg2) {
// TODO 自动生成的方法存根
((ViewPager)arg0).removeView(viewlist.get(arg1));
}
};
viewpager.setAdapter(pageradapter);
}
-----------------------------------------------------------------------------------------
PagerTitle
1、首先,文中提到:在你的布局文件中,将它作为子控件添加在ViewPager中。
<android.support.v4.view.PagerTitleStrip />
2、第二,标题的获取,是重写适配器的getPageTitle(int)函数来获取的。
-------------------------------
<android.support.v4.view.PagerTitleStrip
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:id="@+id/title"
/>
-------------------------------
public CharSequence getPageTitle(int position) {
// TODO Auto-generated method stub
return titlelist.get(position);
}
----------------------------------------
PagerTabStrip :适合交互
private PagerTabStrip tab;
//为PagerTabStrip配色
tab = (PagerTabStrip) findViewById(R.id.title);
tab.setBackgroundColor(Color.BLUE);
tab.setDrawFullUnderline(false);
tab.setTextColor(Color.WHITE);
tab.setTabIndicatorColor(Color.GRAY);
-----------------------------------------------
FragmentPagerAdapter
=第四个不会销毁=上面的会
private List<Fragment>list;
private List<String>title;
public MyFragmentStateAdapter(FragmentManager fm, List<Fragment> fragmentlist,List<String> titlelist) {
super(fm);
// TODO 自动生成的构造函数存根
//this.list = fragmentlist;
//this.title=titlelist;
list = fragmentlist;
title=titlelist;
}
@Override
public Fragment getItem(int arg0) {
// TODO 自动生成的方法存根
return list.get(arg0);
}
@Override
public int getCount() {
// TODO 自动生成的方法存根
return list.size();
}
@Override
public CharSequence getPageTitle(int position) {
// TODO 自动生成的方法存根
return title.get(position);
}
}
-----------------------------------------------------------
再在activity里面声明各个Fragment和将适配器加载到视图即可。
-----------------------------------------------------------
FragmentStatePagerAdapter:=第四个会销毁=
@Override
public Object instantiateItem(ViewGroup arg0, int arg1) {
// TODO 自动生成的方法存根
return super.instantiateItem(arg0, arg1);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// TODO 自动生成的方法存根
super.destroyItem(container, position, object);
}
------------------------补充这2个方法,但不需要改写-----------------------------
在activity加载适配器即可
0 0
- ViewPager页卡
- Viewpager
- ViewPager
- ViewPager
- ViewPager
- ViewPager
- ViewPager
- viewpager
- ViewPager
- ViewPager
- ViewPager
- Viewpager
- viewpager
- ViewPager
- ViewPager
- ViewPager
- viewpager
- ViewPager
- 求Sn=a+aa+aaa+aaaa+aaaaa+....的前n项之和,其中a是一个数字,例如:2+22+222+2222+22222+.....
- 各个JSON技术的简介和优劣
- 【Python开发】网页爬取心得
- ViewFlipper多页面管理的控件
- HDU 5036 Explosion 概率 期望
- ViewPager页卡
- Vector和ArrayList的简单比较
- linux shell中单引号、双引号、反引号、反斜杠的区别
- android 通过wifi 热点实现手机摄像头数据共享
- Bean和Spring生命周期的区别
- HTTP Header 详解
- 联合体(union)的使用方法及其本质
- hadoop一些入门命令(笔记)
- 【Python开发】python发送各类邮件的方法