ViewPage

  • 介绍
  • 实现代码

介绍

ViewPage主要是实现左右切换当前的view,实现滑动切换的效果。

实现代码

import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.ViewPager;import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;import java.util.ArrayList;
import java.util.List;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 渲染布局LayoutInflater layoutInflater = getLayoutInflater().from(this);View view = layoutInflater.inflate(R.layout.unread_layout,null);View view2 = layoutInflater.inflate(R.layout.read_layout,null);View view3 = layoutInflater.inflate(R.layout.read_layout,null);List<View> viewList = new ArrayList<>();viewList.add(view);viewList.add(view2);viewList.add(view3);ViewPager viewPager = findViewById(R.id.view_page1);MyAdapter myAdapter = new MyAdapter(viewList);viewPager.setAdapter(myAdapter);}
}
import java.util.List;public class MyAdapter extends PagerAdapter {private List<View> viewList;public MyAdapter(List<View> viewList){this.viewList = viewList;}@Overridepublic int getCount() {return viewList == null ? 0 : viewList.size();}/*** 将给定位置的View 添加到ViewGroup中,并显示出来* 返回一个代表新页面的Object(key),通常都是返回view本身就行** @param container container* @param position position* @return view*/@NonNull@Overridepublic Object instantiateItem(@NonNull ViewGroup container, int position) {container.addView(viewList.get(position),0);return viewList.get(position);}/*** 判断instantiateItem()方法返回的key是否跟一个页面视图是否相同* @param view* @param object* @return*/@Overridepublic boolean isViewFromObject(@NonNull View view, @NonNull Object object) {return view == object;}@Overridepublic void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {container.removeView(viewList.get(position));}
}
<!-- activity_main.xml -->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><androidx.viewpager.widget.ViewPagerandroid:id="@+id/view_page1"android:layout_width="match_parent"android:layout_height="match_parent"/>
</LinearLayout>
<!-- unread_layout.xml -->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"android:orientation="vertical"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="未阅读信息"android:textSize="36sp"/></LinearLayout>
<!-- read_layout.xml -->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"android:orientation="vertical"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="已阅读信息"android:textSize="36sp"/></LinearLayout>
<!-- all_layout.xml -->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"android:orientation="vertical"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="全部信息"android:textSize="36sp"/></LinearLayout>

Android基础:ViewPage相关推荐

  1. 2020原生Android基础实用开发

    2020原生Android基础实用开发 1.环境配置 进入官网,下载Android studio安装包 https://developer.android.google.cn/studio/ 安装An ...

  2. Android基础新手教程——1.5.2 Git之使用GitHub搭建远程仓库

    Android基础新手教程--1.5.2 Git之使用GitHub搭建远程仓库 标签(空格分隔): Android基础新手教程 本节引言: 在上一节中.我们学习了怎样使用Git.构建我们的本地仓库.轻 ...

  3. android intent 源码,Android 基础之 IntentService 源码

    Android 基础之 IntentService 源码 Android,IntentService,源码 IntentService 位于 android.app 包下面,是 Service 的一个 ...

  4. 【Android基础】动画

    Android里的动画分为两类,以3.0版本为分水岭. 3.0前已存在 帧动画 补间动画 3.0出现 属性动画 帧动画 顾名思义,快速切换几张图片来达到动画的效果. 建立帧动画xml Note:不要把 ...

  5. 基于Android移动终端的微型餐饮管理系统的设计与实现4——Android基础

    本章将介绍一些在开发中用到的一些常用且值得介绍的Android 基础知识和技术,包括Fragment.Slidingmenu.RecyelerView.HelloCharts框架和Ormlite框架. ...

  6. 关于android基础教程一书的初步解读后发现的一些问题

    我是一个比较固执的人..在进行android基础教程一书的初步学习之后,说实话,这本书虽然说为了照顾有需要的童鞋,提供了所有的源代码,就连我也在亲自打了好久的代码之后最后决定放弃,也偷偷懒,进行简单无 ...

  7. Android基础总结+SQlite数据库【申明:来源于网络】

    Android基础总结+SQlite数据库[申明:来源于网络] 基础总结篇之一:Activity生命周期:http://blog.csdn.net/liuhe688/article/details/6 ...

  8. Android基础教程pdf

    下载地址:网盘下载 内容简介  · · · · · · <Android基础教程>内容完整丰富,具有较强的通用性,读者都能通过<Android基础教程>快速学习Android开 ...

  9. Android基础_数据存储

    2019独角兽企业重金招聘Python工程师标准>>> Android基础_数据存储 Android数据存储的几种形式 继承SQLiteOpenHelper public class ...

  10. android各目录大小,Android 基础篇 — 放不同drawable文件夹中图片的大小

    我们接着上篇文章Android 基础篇 - 不同DPI取哪个本地文件夹中的资源 讲,文末尾提到一个问题,为什么不同drawable文件夹中的图片大小在终端设备会不一样? 1 准备 在drawable- ...

最新文章

  1. 解决android Stadio 升级之后 出现乱码
  2. 会话跟踪技术Cookieless
  3. 《算法设计》二、算法分析基础
  4. php 请求转发 重定向,PHP怎么实现页面重定向?(图文+视频)
  5. DataTable某一列的值转化成集合
  6. mysql 注入 绕过防火墙_绕过阿里云防火墙继续扫描探测和SQL注入
  7. 阿里毕玄:推荐给Java程序员的7本好书
  8. Linux技术学习路线图
  9. 手机MODEM 开发(14)----高通平台手机开发之Modem
  10. 图书管理系统(微信、后台、网页端)总结
  11. [转载] python自定义error_Python 自定义异常处理Error函数
  12. python命名空间,类成员,对象成员
  13. illegal instruction问题窥探
  14. null怎么insert oracle,Oracle:如果行不存在,如何INSERT
  15. 计算机应用基础考试excel操作题,计算机应用基础上机操作试题
  16. 出纳使用的计算机如何管理,出纳杂谈:浅谈出纳工作的创新
  17. 各种显示接口DBI、DPI、LTDC、DSI、FSMC
  18. BIP语言介绍(一)
  19. 计算机专业英语辅导教材,计算机专业英语2全套教材.ppt
  20. 一文搞懂什么是QPS PV 关于并发的面试

热门文章

  1. 深度步态识别综述(三)
  2. gg修改器修改数值没有用怎么办_gg修改器怎么用教学 gg修改器修改游戏方法介绍...
  3. FW与手机APP交互的问题
  4. simulink模型动静态测试
  5. 微信h5棋牌以及下载类推广如何在微信中做好防封防屏蔽技术
  6. 后端系统开发利器,gflags概述
  7. matlab插值函数 外插,Matlab数据插值-内插、外插
  8. 声卡接口Line in、Line out、Mic in和Speak out
  9. 玲珑3D与几何画板的比较
  10. Unity 模拟鼠标点击