一、概述
ViewFlipper这个部件是用来实现多页显示的,多页之间的显示一般通过手势的滑动来实现,比如处于Home界面时,可以通过滑动来显示另一页,有点像Activity之间的切换。下面的实现没有涉及到手势识别这个功能。
二、要求
掌握ViewFlipper的使用。
三、实现
新建工程MyFlipper,修改/res/layout/main.xml文件,在里面添加一个ViewFlipper,完整的main.xml文件如下:
1 26 7 12 13 14 15
在/res/layout下新建2个文件firstview.xml和secondview.xml。这两个文件的内容几乎一样,只是显示的内容不一样,firstview.xml如下:
15 6 14 15 16 22 23 24
secondview.xml如下:
1 26 7 15 16 22 23 24
接着,修改MyFlipperActivity.java文件,主要是定义一个ViewFlipper对象,向它添加两个View,设置两个按钮的监听,在监听里显示前、后一个View。
1 package com.nan.flipper; 2 3 import android.app.Activity; 4 import android.os.Bundle; 5 import android.view.LayoutInflater; 6 import android.view.View; 7 import android.widget.Button; 8 import android.widget.ViewFlipper; 9 10 public class MyFlipperActivity extends Activity 11 { 12 private ViewFlipper mViewFlipper = null; 13 private LayoutInflater mLayoutInflater = null; 14 15 private Button firstButton = null; 16 private Button secondButton = null; 17 18 /** Called when the activity is first created. */ 19 @Override 20 public void onCreate(Bundle savedInstanceState) 21 { 22 super.onCreate(savedInstanceState); 23 setContentView(R.layout.main); 24 25 mViewFlipper = (ViewFlipper)this.findViewById(R.id.viewflipper); 26 27 mLayoutInflater = LayoutInflater.from(MyFlipperActivity.this); 28 //将布局文件firstview.xml变为View对象 29 View firstView = mLayoutInflater.inflate(R.layout.firstview, null); 30 //将布局文件secondview.xml变为View对象 31 View secondView = mLayoutInflater.inflate(R.layout.secondview, null); 32 //添加View 33 mViewFlipper.addView(firstView); 34 //添加View 35 mViewFlipper.addView(secondView); 36 37 firstButton = (Button)firstView.findViewById(R.id.firstbutton); 38 //设置按钮监听 39 firstButton.setOnClickListener(new View.OnClickListener() 40 { 41 42 @Override 43 public void onClick(View v) 44 { 45 // TODO Auto-generated method stub 46 //显示后一个View 47 mViewFlipper.showNext(); 48 } 49 }); 50 51 secondButton = (Button)secondView.findViewById(R.id.secondbutton); 52 //设置按钮监听 53 secondButton.setOnClickListener(new View.OnClickListener() 54 { 55 56 @Override 57 public void onClick(View v) 58 { 59 // TODO Auto-generated method stub 60 //显示前一个View 61 mViewFlipper.showPrevious(); 62 } 63 }); 64 65 } 66 67 }
好了,运行该程序:
点击一下“显示第二个View”按钮,效果如下:
好了,完成。 如果加上手势识别的话就可以通过滑动来切换页面了。