android 多窗口见左右滑动,android实现多界面左右滑动切换

源博文链接:http://blog.sina.com.cn/s/blog_a69672d901017nox.html

一、实现多面界面滑动切换方法有多种,就目前我所知道的大致有三种:

1.ViewFlipper + Animation:

2.ViewGroup + Scroller + VelocityTracker

3.ViewPager

本文主要介绍第三种ViewPager实现方式

二、ViewPager是google Android SDk中自带的一个附加包(android-support-v4.jar)的一个类可以用来实现屏幕间的切换。如下图:

ee3297bb3e1f19da96a7327d5d1b6ae5.png

如果在工程中没有看见该附加包,请及时更新sdk,并勾选Extras/Android Support Library安装

三、ViewPager的简单使用

创建工程ViewPagerDemo1

1.主布局文件activity_main.xml:

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="fill_parent"

android:layout_height="fill_parent" >

android:id="@+id/viewPager"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

2.子页面布局 layout1,xml,layout2,xml,layout3_xml

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical"

android:background="#ff0000ff"

android:gravity="center">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="第一页"

android:textColor="#ffffffff"

android:textSize="30sp"/>

本例子三个页面布局一样

3.主窗口代码:

public class MainActivity extends Activity{

@Override

public voidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initViewPager();

}

private voidinitViewPager(){

ViewPager viewPager =(ViewPager)findViewById(R.id.viewPager);

View view1 =LayoutInflater.from(this).inflate(R.layout.layout1, null);

View view2 =LayoutInflater.from(this).inflate(R.layout.layout2, null);

View view3 =LayoutInflater.from(this).inflate(R.layout.layout3, null);

ArrayListviews = new ArrayList();

views.add(view1);

views.add(view2);

views.add(view3);

MYViewPagerAdapter adapter = newMYViewPagerAdapter();

adapter.setViews(views);

viewPager.setAdapter(adapter);

}

}

4.另外还需继承PagerAdapter类实现自己MYPagerAdapter适配器类

publicclass MYViewPagerAdapter extends PagerAdapter {

privateArrayListviews;

public voidsetViews(ArrayListviews){

this.views = views;

}

@Override

public int getCount() {

return views.size();

}

@Override

public boolean isViewFromObject(View arg0, Objectarg1) {

return arg0 == arg1;

}

@Override

public void destroyItem(View container, intposition, Object object) {

((ViewPager)container).removeView(views.get(position));

}

@Override

public Object instantiateItem(View container, intposition) {

((ViewPager)container).addView(views.get(position));

returnviews.get(position);

}

工程下载地址:http://115.com/file/e75fxvro#ViewPagerDemo1.rar

代码运行效果如下:

42ec11d278f260d82b594c53140c01a2.png

086600c3ad61184b52362af3c7e581cb.png

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值