ViewPager循环显示
好久没有写博客了,今天加一个ViewPager页面的循环显示,添加了一个删除页面的小按钮:
MainActivity.java
package com.yt.viewpagerlooper; import java.util.ArrayList; import java.util.List; import android.os.Bundle; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import android.app.Activity; public class MainActivity extends Activity { String[] strs = new String[] { "1", "2", "3", "4", "5", "6"}; int[] resIds = new int[]{R.drawable.step1,R.drawable.step2,R.drawable.step3,R.drawable.step4,R.drawable.step5,R.drawable.step6}; List<String> titles = new ArrayList<String>(); List<Integer> resIDs = new ArrayList<Integer>(); private ViewPager viewPager; private int curPage = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); for(int i=0; i<strs.length; i++){ resIDs.add(resIds[i]); titles.add(strs[i]); } viewPager = (ViewPager) findViewById(R.id.viewPager); MyPagerAdapter adapter = new MyPagerAdapter(); viewPager.setAdapter(adapter); viewPager.setOnPageChangeListener(new MyPageChage()); Button btn = (Button) findViewById(R.id.btn); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { titles.remove(curPage); resIDs.remove(curPage); System.out.println("删除:" + curPage); viewPager.getAdapter().notifyDataSetChanged(); } }); } @Override public boolean onTouchEvent(MotionEvent event) { System.out.println(event.getX() + " Activity"); return super.onTouchEvent(event); } class MyPageChage implements OnPageChangeListener { @Override public void onPageScrollStateChanged(int arg0) { } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageSelected(int position) { curPage = position % titles.size(); System.out.println(curPage); } } private boolean isFirst = true; class MyPagerAdapter extends PagerAdapter { @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } @Override public Object instantiateItem(ViewGroup container, int position) { View view = View.inflate(MainActivity.this, R.layout.page_item, null); TextView tv = (TextView) view.findViewById(R.id.title); ImageView iv = (ImageView) view.findViewById(R.id.iv); tv.setText(titles.get(position % titles.size())); iv.setImageResource(resIDs.get(position % titles.size())); viewPager.addView(view); return view; } @Override public void destroyItem(ViewGroup container, int position, Object object) { ((ViewPager) container).removeView((View) object); } @Override public int getItemPosition(Object object) { return PagerAdapter.POSITION_NONE; } } }
布局文件:activity_main.xml
<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"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> <android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ffff00" /> <Button android:layout_centerHorizontal="true" android:layout_alignParentBottom="true" android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="删除一个View" /> </RelativeLayout>
ViewPager中页面的布局文件:page_item.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/title" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#66ffffff" /> <ImageView android:id="@+id/iv" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/title" android:scaleType="fitXY" android:src="@drawable/ic_launcher" /> </RelativeLayout>
源码下载地址:http://download.csdn.net/detail/yuan936845015/6573023