ViewPager
来源:互联网 发布:java桌面开发框架 编辑:程序博客网 时间:2024/05/21 21:35
ViewPager:是android扩展包v4包中的类,这个类可以让用户左右切换当前的view;
直接继承了ViewGroup类,所有它是一个容器类,可以在其中添加其他的view类。
ViewPager类需要一个PagerAdapter(与adapter继承pageradaper)适配器类给它提供数据。
ViewPager经常和Fragment一起使用,并且提供了专门的FragmentPagerAdapter和FragmentStatePagerAdapter类供Fragment中的ViewPager使用。ViewPager是一个自带手势、动画的,可以实现View对象切换显示的控件。 ViewPager是android-support-v4.jar包中的。 在layout中使用ViewPager控件时,必须使用完整的包名+类名。 ViewPager显示的内容使用PagerAdapter进行控制,在自定义PagerAdapter时,除了需要重写抽象方法以外,还需要重写Object instantiateItem()方法和void destroyItem()方法。 查看V4包的源码
1. 找到sdk的路径2. 在sdk下依次打开extras -> android -> support -> v4 -> src,并将完整路径复制3. 在项目的libs文件夹下,创建android-support-v4.jar.properties文件,并编辑,内容为 src=复制的路径(#"/"把"//"#)4. 在eclipse中将项目关闭(close)然后重新打开(open)
界面文件
activity_main.xml
<RelativeLayout 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=".MainActivity" > <android.support.v4.view.ViewPager android:id="@+id/vp_view_pager" android:layout_width="match_parent" android:layout_height="match_parent" /></RelativeLayout>
------------------
page_01.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:background="@android:color/holo_blue_light" android:layout_height="match_parent" > <TextView android:layout_width="wrap_content" android:textSize="36sp" android:textColor="#ffffff" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="Page 01" /></RelativeLayout>
-------------------
page_02.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:background="@android:color/holo_green_light" android:layout_height="match_parent" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="Page 02" android:textColor="#ffffff" android:textSize="36sp" /></RelativeLayout>
JAVA Activity:
public class MainActivity extends Activity {private ViewPager vpViewPager;private PagerAdapter adapter;private List<View> pages;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);pages = new ArrayList<View>();pages.add(getLayoutInflater().inflate(R.layout.page_01, null));pages.add(getLayoutInflater().inflate(R.layout.page_02, null));pages.add(getLayoutInflater().inflate(R.layout.page_03, null));vpViewPager = (ViewPager) findViewById(R.id.vp_view_pager);adapter = new InnerPagerAdapter();vpViewPager.setAdapter(adapter);}private class InnerPagerAdapter extends PagerAdapter {@Overridepublic Object instantiateItem(ViewGroup container, int position) {// 初始化需要显示的View对象,将View对象添加到容器(参数1),并作为返回值View view = pages.get(position);container.addView(view);return view;}@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {// 从容器中把View对象移除container.removeView(pages.get(position));}@Overridepublic int getCount() {return pages.size();}@Overridepublic boolean isViewFromObject(View view, Object object) {return view == object;}}}
0 0
- Viewpager
- ViewPager
- ViewPager
- ViewPager
- ViewPager
- ViewPager
- viewpager
- ViewPager
- ViewPager
- ViewPager
- Viewpager
- viewpager
- ViewPager
- ViewPager
- ViewPager
- viewpager
- ViewPager
- ViewPager
- 软件设计
- 1142: 【C语言训练】立方和不等式
- 第六周项目一-分数类的雏形(1)
- PHPExcel导出
- Java NIO -AtomicInteger
- ViewPager
- achartengine/MPAndroidChart——图表实现之Java
- 例程1. LKB -- 慕司板IAP15
- 1.Mysql数据库的优化技术(1)
- HDOJ 1202 The calculation of GPA
- linux yum命令详解
- Codeforces Round #346 (Div. 2) B (pair+vector的应用)
- Mac下使用git和github
- TextView设置字体颜色的几种方法简记