Android UI设计(引导界面):ViewPager之基本用法
2015-09-01 21:36
441 查看
一、ViewPager介绍
ViewPager是由google为我们提供的兼容android的软件包v4提供的。利用它可以做许多事情,比如我们平时常见的软件刚安装时的滑动面,淘宝的自动循环的界面、最简单的导航等。它的使用与ListView相似需要一个适配器,只是它需要的是PagerAdapter,但是它又有不同之处,listview中传递的是对象,而ViewPager中传递的是View。
二、v4 jar包的导入
先找到jar包D:\software\android\Sdk\Sdk\extras\android\m2repository\com\android\support
Ecplise:点击jar包,复制,点开ecplise中相应的project,找到lib文件夹,复制进去即可。
Android Studio:File ——projectconstructor——viewpager-dependence-点击“+”找到support v4即可。
三、简单使用例子
ViewPager的使用,也是先需要在布局中引入,但是在布局文件中引入时需要注意要写全包名,view是小写。[code]<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" tools:context=".MainActivity" > <!-- 注意,一定写全称 --> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" > </android.support.v4.view.ViewPager> </RelativeLayout>
PagerAdapter
适配器的创建需要重写它的两个方法destroyItem()<销毁>和 instantiateItem()<初始化>[code]package com.example.myviewpager; import java.util.List; import android.graphics.Picture; import android.support.v4.view.PagerAdapter; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.Toast; public class MyViewPagerAdapter extends PagerAdapter{ private List<View> views; public MyViewPagerAdapter(List<View> views) { super(); this.views = views; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView( views.get(position)); } @Override public Object instantiateItem(ViewGroup container, int position) { View view=views.get(position); container.addView(view); if(position==2){ Button button=(Button) view.findViewById(R.id.button); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(v.getContext(),"点击成功", Toast.LENGTH_SHORT).show(); } }); } return view; } @Override public int getCount() { // TODO Auto-generated method stub return views.size(); } @Override public boolean isViewFromObject(View arg0, Object arg1) { // TODO Auto-generated method stub return arg0==arg1; } }
MainActivity:
[code]public class MainActivity extends Activity { private ViewPager mviewpager; private List<View> views; private MyViewPagerAdapter madapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mviewpager=(ViewPager) findViewById(R.id.viewpager); views=new ArrayList<View>(); View view1=getLayoutInflater().inflate(R.layout.viewpager_item1, null); View view2=getLayoutInflater().inflate(R.layout.viewpager_item2, null); View view3=getLayoutInflater().inflate(R.layout.viewpager_item3, null); views.add(view1); views.add(view2); views.add(view3); madapter=new MyViewPagerAdapter(views); mviewpager.setAdapter(madapter); }
相关文章推荐
- java基础-GUI
- [DP!]UESTC 890
- LeetCode之Repeated DNA Sequences
- UI_UIGestureRecognizer(触摸手势)
- UINavigationController视图控制器
- iPhone第三节:UITableView(2)
- HDU 4893(Wow! Such Sequence!-线段树单点修改+区间求和+改为最近Fib数)
- InputFormat到key-value生成流程
- iPhone第三节:UITableView
- UIProgressView 进度条
- Codeforces 52A 123-sequence
- UITableView<三>
- UGUI基本控件(二)
- UIToolbar工具栏类
- 尽量用pass-by-reference-to-const(const引用)替换pass-by-value(传值)
- 尽量用pass-by-reference-to-const(const引用)替换pass-by-value(传值)
- UICollectionView 集合视图
- Android UI设计小知识——富文本
- setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key解决办法
- UIView与CALayer的区别