展会信息港展会大全

Android常用控件之ViewPager的使用
来源:互联网   发布日期:2015-10-02 21:09:59   浏览:821次  

导读:ViewPager可以实现多个页面进行切换,提高用户体验先看下效果实现上是有左右滑动效果的,并不是跟幻灯片一样,只是我把三张图片合成gif格式的图片而已;因为没法直接录制设备上的...

ViewPager可以实现多个页面进行切换,提高用户体验

先看下效果

实现上是有左右滑动效果的,并不是跟幻灯片一样,只是我把三张图片合成gif格式的图片而已;因为没法直接录制设备上的操作效果,只能截图再合成,就成了上面的效果,将就着吧。

定义布局文件

[html]

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

<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/pagertitle"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="top" />

</android.support.v4.view.ViewPager>

</LinearLayout>

其中ViewPager是页面,PagerTitleStrip是标题

其中一个页面的布局

[html]

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#f00"

android:orientation="vertical" >

<ImageView

android:id="@+id/image1"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="@drawable/image1"

android:contentDescription="@string/page1" />

</LinearLayout>

其它页面类似的。

Activity代码

[java]

package com.example.viewpagerdemo;

import java.util.ArrayList;

import java.util.List;

import android.app.Activity;

import android.os.Bundle;

import android.support.v4.view.PagerAdapter;

import android.support.v4.view.ViewPager;

import android.view.LayoutInflater;

import android.view.View;

public class MainActivity extends Activity {

private ViewPager viewPager = null;

private ArrayList<String> titles;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

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

// 把要显示的View装入数组

LayoutInflater li = LayoutInflater.from(this);

View view1 = li.inflate(R.layout.pager1, null);

View view2 = li.inflate(R.layout.pager2, null);

View view3 = li.inflate(R.layout.pager3, null);

// 添加页面

final ArrayList<View> views = new ArrayList<View>();

views.add(view1);

views.add(view2);

views.add(view3);

// 添加标题

titles = new ArrayList<String>();

titles.add("tab1");

titles.add("tab2");

titles.add("tab3");

picViewPagerAdapter pagerAdapter = new picViewPagerAdapter(views);

viewPager.setAdapter(pagerAdapter);

}

/**

* 为ViewPager添加适配器

* @author Administrator

*

*/

class picViewPagerAdapter extends PagerAdapter {

private List<View> listViews;

public picViewPagerAdapter(List<View> list) {

listViews = list;

}

@Override

public int getCount() {

// TODO Auto-generated method stub

return listViews.size();

}

@Override

public boolean isViewFromObject(View arg0, Object arg1) {

// TODO Auto-generated method stub

return arg0 == arg1;

}

@Override

public void destroyItem(View container, int position, Object object) {

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

}

@Override

public CharSequence getPageTitle(int position) {

return titles.get(position);

}

@Override

public Object instantiateItem(View container, int position) {

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

return listViews.get(position);

}

}

}

其中需要实现PagerAdapter类,这个类实现了页面的装载和r卸载功能。

赞助本站

人工智能实验室

相关热词: android开发 教程

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港