AndroidUI ViewPage
翻页效果
- 辅助类 PagerAdapter 的 方法
- getCount : 获得viewPager 有多少个view
- instantiaeltem()
- 将给定位置的view添加到viewGroup(容器中),创建并显示出来
- 返回一个代表新增页面的object(key) ,通常直接返回view 本身就可以了,当然你也可以自定义自己的key,但是key和每个view要一一对应的关系
- isViewFromObject()
- 判断instantiateItem(ViewGroup,int)函数所返回的key与一个页面视图是否代表的同一个视图(即他俩是否对应,对应的表示同一个view),通常我们直接写return view = object
- destroyItem
- 移除一个给定位置的页面。适配器有责任从容器中删除这个视图。这是为了确保在finishUpdata(viewGroup)返回视图时能被移除。另外两个方法则是设计到一个key的东东。
代码实现
-
添加布局文件
-
![image-20210321174339073](AndroidUI ViewPage.assets/image-20210321174339073.png)
-
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:background="#ff00ffff" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:text="Layout1" android:textSize="30dp" android:layout_height="wrap_content" android:layout_width="wrap_content" /> </LinearLayout>
-
-
创建 Viewpager组件
-
<androidx.viewpager.widget.ViewPager android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/vp"/>
-
-
渲染布局文件
-
//布局渲染出来 LayoutInflater lf = getLayoutInflater().from(this); View view1 = lf.inflate(R.layout.layout1, null); View view2 = lf.inflate(R.layout.layout2, null); View view3 = lf.inflate(R.layout.layout3, null);
-
-
将布局加进集合里面
-
/view 加入到集合里面 List<View> viewList = new ArrayList<>(); viewList.add(view1); viewList.add(view2); viewList.add(view3);
-
-
创建PagerAdapter 辅助类
-
public class MyAdaptor extends PagerAdapter
-
实现构造方法
-
private List<View> mListView; public MyAdaptor(List<View> mListView){ this.mListView = mListView; }
-
-
实现方法
-
@Override public Object instantiateItem(@NonNull ViewGroup container, int position) { container.addView(mListView.get(position),0); return mListView.get(position); } @Override public int getCount() { return mListView.size(); } @Override public boolean isViewFromObject(@NonNull View view, @NonNull Object object) { return view == object; } @Override public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) { container.removeView(mListView.get(position)); }
-
-
-
实现Viewpager
-
ViewPager viewPager = findViewById(R.id.vp); MyAdaptor myAdaptor = new MyAdaptor(viewList); viewPager.setAdapter(myAdaptor);
-