今天想在界面加入一个滑动的功能,看起来比较炫,也没什么实用性,单纯的好看而已。
使用了ViewPager方法;下面贴代码:
首先在主界面里面创建:(注意,一般只能用在常见布局下面,一些特殊的布局下面或者包布局还是无法实现此功能的)
<android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center"/>
然后在后台代码onCreate中添加以下代码:
viewPager = (ViewPager)findViewById(R.id.viewpager); LayoutInflater inflater = getLayoutInflater().from(Main.this); statioManage = inflater.inflate(R.layout.station_manage,null); histRecord = inflater.inflate(R.layout.hist_record,null); user = inflater.inflate(R.layout.user,null); viewList = new ArrayList<View>(); viewList.add(statioManage); viewList.add(histRecord); viewList.add(user); //引用适配器 PagerAdapter pagerAdapter = new PagerAdapter(viewList); viewPager.setAdapter(pagerAdapter);
PagerAdapter是一个我在网上找到的一个配置器,忘了在哪篇文章里找的了,若看到请联系我,下面把这个适配器代码如下:
public class PagerAdapter extends PagerAdapter { public List<View> viewList; public PagerAdapter(List<View> viewList) { this.viewList = viewList; } /*下面四个函数是一定要重写的*/ @Override public boolean isViewFromObject(View arg0, Object arg1) { //判断instantiateItem(ViewGroup, int)函数所返回来的Key与一个页面视图是否是代表的同一个视图(判断key) // TODO Auto-generated method stub return arg0 == arg1; } @Override public int getCount() {//返回要滑动的VIew的个数 // TODO Auto-generated method stub return viewList.size(); } @Override public void destroyItem(ViewGroup container, int position, Object object) {//从当前container中删除指定位置(position)的View; // TODO Auto-generated method stub container.removeView(viewList.get(position)); } @Override public Object instantiateItem(ViewGroup container, int position) { //实例化:将当前视图添加到container中,并返回当前View(传送key) // TODO Auto-generated method stub container.addView(viewList.get(position)); return viewList.get(position); } }
写上基本就可以用了,有关事项也写清了,有问题请留言。