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);
        
  • 相关阅读:
    Tomcat配置
    Tomcat介绍和jbk安装
    nginx企业级优化
    linux 部署lnmp平台
    linux nginx服务
    linux rsync
    openssh远程连接及tcpwrappers防护
    linux 日志文件系统
    linux 解析文件系统原理
    linux 安全配置二
  • 原文地址:https://www.cnblogs.com/AronJudge/p/14652493.html
Copyright © 2011-2022 走看看