zoukankan      html  css  js  c++  java
  • AndroidUI ViewPage

    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);
        
  • 相关阅读:
    ajax 跨域 Access-Control-Allow-Origin
    关于 请求参数 传递时 参数字符串里面包含 特殊符号的 解决~
    鼠标滚动事件
    js 选择随机数
    html 关于一行两列 高度不定的实现(不用table)
    关于php跨域操作(主域不同)
    写规范的javascript脚本代码 之for in
    windows服务等获取文件路径文件目录方法
    C#如何在控制台应用程序中加入配置文件
    easyui Microsoft JScript 运行时错误: “JSON”未定义
  • 原文地址:https://www.cnblogs.com/AronJudge/p/14652493.html
Copyright © 2011-2022 走看看