ViewPager
2014-01-15 15:46
288 查看
1.第一个ViewPager
<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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<android.support.v4.view.ViewPager
android:id="@+id/viewpager1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" >
<android.support.v4.view.PagerTitleStrip
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top" >
</android.support.v4.view.PagerTitleStrip>
</android.support.v4.view.ViewPager>
</RelativeLayout>
2.加了监听器的ViewPager
<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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" >
<android.support.v4.view.PagerTitleStrip
android:id="@+id/pagertitlestrip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top" >
</android.support.v4.view.PagerTitleStrip>
</android.support.v4.view.ViewPager>
</RelativeLayout>
<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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<android.support.v4.view.ViewPager
android:id="@+id/viewpager1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" >
<android.support.v4.view.PagerTitleStrip
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top" >
</android.support.v4.view.PagerTitleStrip>
</android.support.v4.view.ViewPager>
</RelativeLayout>
package com.example.android_viewpager; import java.util.ArrayList; import java.util.List; import java.util.zip.Inflater; import android.os.Bundle; import android.app.Activity; import android.support.v4.view.PagerAdapter; import android.support.v4.view.PagerTitleStrip; import android.support.v4.view.ViewPager; import android.view.LayoutInflater; import android.view.Menu; import android.view.View; import android.view.ViewGroup; public class MainActivity extends Activity { private ViewPager viewPager; private PagerTitleStrip pagerTitleStrip;// 表示滑动的每一页标题 private List<View> list;// 表示装在滑动布局 private List<String> titleList;// 表示滑动的每一页的标题 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewPager = (ViewPager) findViewById(R.id.viewpager1); pagerTitleStrip = (PagerTitleStrip) findViewById(R.id.title); View view1 = LayoutInflater.from(MainActivity.this).inflate( R.layout.tab1, null); View view2 = LayoutInflater.from(MainActivity.this).inflate( R.layout.tab2, null); View view3 = LayoutInflater.from(MainActivity.this).inflate( R.layout.tab3, null); list = new ArrayList<View>(); list.add(view3); list.add(view2); list.add(view1); titleList = new ArrayList<String>(); titleList.add("title1"); titleList.add("title2"); titleList.add("title3"); viewPager.setAdapter(new MyAdapter()); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } class MyAdapter extends PagerAdapter { @Override public int getCount() { // TODO Auto-generated method stub return list.size(); } @Override public void destroyItem(ViewGroup container, int position, Object object) { // TODO Auto-generated method stub ((ViewPager)container).removeView(list.get(position)); } @Override public CharSequence getPageTitle(int position) { // TODO Auto-generated method stub return titleList.get(position); } @Override public Object instantiateItem(View container, int position) { // TODO Auto-generated method stub ((ViewPager)container).addView(list.get(position)); return list.get(position); } @Override public boolean isViewFromObject(View arg0, Object arg1) { // TODO Auto-generated method stub return arg0==arg1; } } }
2.加了监听器的ViewPager
<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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" >
<android.support.v4.view.PagerTitleStrip
android:id="@+id/pagertitlestrip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top" >
</android.support.v4.view.PagerTitleStrip>
</android.support.v4.view.ViewPager>
</RelativeLayout>
package com.example.android_viewpager02; import java.util.ArrayList; import java.util.List; import android.os.Bundle; import android.app.Activity; import android.support.v4.view.PagerAdapter; import android.support.v4.view.PagerTitleStrip; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; import android.view.View; import android.view.ViewGroup; public class MainActivity extends Activity { private ViewPager viewPager; private PagerTitleStrip pagerTitleStrip; private List<View> list=null; private MyAdapter adapter; private List<String> title=null; private LayoutInflater inflater=null; @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.pagertitlestrip); adapter=new MyAdapter(); inflater=LayoutInflater.from(MainActivity.this); View tab=inflater.inflate(R.layout.tab, null); View tab1=inflater.inflate(R.layout.tab1, null); View tab2=inflater.inflate(R.layout.tab2, null); View tab3=inflater.inflate(R.layout.tab3, null); list=new ArrayList<View>(); list.add(tab); list.add(tab1); list.add(tab2); list.add(tab3); title=new ArrayList<String>(); title.add("title"); title.add("title1"); title.add("title2"); title.add("title3"); viewPager.setAdapter(adapter); viewPager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int arg0) { // TODO Auto-generated method stub Log.i("Main", "a"+arg0); } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { // TODO Auto-generated method stub Log.i("Main", "b"+arg0); Log.i("Main", "c"+arg1); Log.i("Main", "d"+arg2); } @Override public void onPageScrollStateChanged(int arg0) { // TODO Auto-generated method stub //在这里开启线程下载网络数据 View view=inflater.inflate(R.layout.tab, null); list.add(view); title.add("new Title"); adapter.notifyDataSetChanged(); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } class MyAdapter extends PagerAdapter{ @Override public int getCount() { // TODO Auto-generated method stub return list.size(); } @Override public void destroyItem(ViewGroup container, int position, Object object) { // TODO Auto-generated method stub ((ViewPager)container).removeView(list.get(position)); } @Override public Object instantiateItem(ViewGroup container, int position) { // TODO Auto-generated method stub ((ViewPager)container).addView(list.get(position)); return list.get(position); } @Override public CharSequence getPageTitle(int position) { // TODO Auto-generated method stub return title.get(position); } @Override public boolean isViewFromObject(View arg0, Object arg1) { // TODO Auto-generated method stub return arg0==arg1; } } }
相关文章推荐
- Android 深入ViewPager补间动画,实现类京东商城首页广告Banner切换效果
- DirectionalViewPager支持横向和纵向的ViewPager
- TabLayout和Viewpager
- ViewPager实现引导界面以及进入下一个activity解决办法
- scrollview中嵌套viewpager不显示
- Android开发:ViewPager+Fragment满足内容区域左右滑动
- 引入ViewPager包,编译不报错,运行报错ViewPager不存在
- Viewpager中嵌套Listview,而且Listview的item中夹杂ViewPager
- 自定义无限轮播ViewPager的实现
- work_weipa_viewpager
- android学习日记(六):ViewPager详解下
- Android ViewPager、ScrollView或ListView嵌套WebView滑动冲突
- ViewPager 详解(四)----自主实现滑动指示条
- 使用ViewPager实现幻灯片播放功能
- ViewPagerIndicator 自定义指示器
- Android中Fragment点击切换与添加ViewPager滑动切换
- Android 使用ViewPager实现左右循环滑动图片
- Fragment中嵌套viewPager产生问题
- android ViewPager滑动事件(OnPageChangeListener)讲解
- Jake Wharton之ViewPagerIndicator解读预备役