博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ViewPager的简单使用
阅读量:4954 次
发布时间:2019-06-12

本文共 2617 字,大约阅读时间需要 8 分钟。

ViewPager用于实现多页面的切换效果,该类继承于ViewGroup,存在于Google的兼容包里:android-support-v4.jar,使用时记得构建路径,ViewPager使用非常简单,下面用一个简单示例来演示:

Activity:

package com.home.activity;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.View;import android.view.ViewGroup;import com.home.view.MyView;import com.home.viewpager.R;public class ViewPagerTestActivity extends Activity {	// 声明ViewPager对象	private ViewPager viewPager;	// 声明存放在ViewPager里面的View的集合	private List
viewList = new ArrayList
(); // 声明自定义组件 private MyView myView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 实例化自定义组件 myView = new MyView(this); // 得到界面上的ViewPager实例 viewPager = (ViewPager) findViewById(R.id.main_viewpager); // 为viewList集合添加View viewList.add(getLayoutInflater().inflate(R.layout.firstview, null)); viewList.add(getLayoutInflater().inflate(R.layout.secondview, null)); viewList.add(myView); PagerAdapter adapter = new PagerAdapter() { // 用来初始化ViewPager中的view组件 @Override public Object instantiateItem(View container, int position) { ((ViewGroup) container).addView(viewList.get(position)); return viewList.get(position); } // 当页面需要销毁时从ViewPager中去掉 @Override public void destroyItem(View container, int position, Object object) { ((ViewGroup) container).removeView(viewList.get(position)); } // ViewPager中存放的页面个数 @Override public int getCount() { return viewList.size(); } // 判断切换的两个界面是否是同一个 @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } }; // 为viewPager设置适配器 viewPager.setAdapter(adapter); }}

自定义组件类(MyView):

package com.home.view;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.util.AttributeSet;import android.view.View;public class MyView extends View {	public MyView(Context context, AttributeSet attrs) {		super(context, attrs);	}	public MyView(Context context) {		super(context);	}	@Override	protected void onDraw(Canvas canvas) {		super.onDraw(canvas);		Paint paint = new Paint();		canvas.drawColor(Color.BLUE);		paint.setColor(Color.RED);		canvas.drawCircle(30, 30, 30, paint);		canvas.drawText("第三个页面", 270, 480, paint);	}}

Activity的布局XML:

firstview.xml:

secondview.xml:

 

 

转载于:https://www.cnblogs.com/jiangu66/p/3198960.html

你可能感兴趣的文章
IIS發佈網站的時候遇到的問題
查看>>
有效的沟通非常重要
查看>>
zoj 1028 Flip and Shift(数学)
查看>>
递归与回调函数
查看>>
asp.net中关于《%=》《%#》《%》 的用法——(转帖)
查看>>
机械按键硬件防抖动
查看>>
Linux VmWare安装虚拟机(centos6.9)
查看>>
函数式接口
查看>>
css伪元素选择器
查看>>
【Android】实现类似QQ列表
查看>>
android 让一个控件按钮居于底部的几种方法
查看>>
android systemUI--Notification 整理
查看>>
收音代码分析
查看>>
WIN7局域网文件共享设置方法
查看>>
Could not connect to '192.168.89.144' (port 22)
查看>>
读程序是怎样跑起来的第二章
查看>>
Spring Boot:使用Rabbit MQ消息队列
查看>>
JS刷新frame框架
查看>>
C#窗体程序显示当前版本号方便查看更新
查看>>
ubuntu物理机上搭建Kubernetes集群 -- master 配置
查看>>