Android基础:ViewPage
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相关推荐
- 2020原生Android基础实用开发
2020原生Android基础实用开发 1.环境配置 进入官网,下载Android studio安装包 https://developer.android.google.cn/studio/ 安装An ...
- Android基础新手教程——1.5.2 Git之使用GitHub搭建远程仓库
Android基础新手教程--1.5.2 Git之使用GitHub搭建远程仓库 标签(空格分隔): Android基础新手教程 本节引言: 在上一节中.我们学习了怎样使用Git.构建我们的本地仓库.轻 ...
- android intent 源码,Android 基础之 IntentService 源码
Android 基础之 IntentService 源码 Android,IntentService,源码 IntentService 位于 android.app 包下面,是 Service 的一个 ...
- 【Android基础】动画
Android里的动画分为两类,以3.0版本为分水岭. 3.0前已存在 帧动画 补间动画 3.0出现 属性动画 帧动画 顾名思义,快速切换几张图片来达到动画的效果. 建立帧动画xml Note:不要把 ...
- 基于Android移动终端的微型餐饮管理系统的设计与实现4——Android基础
本章将介绍一些在开发中用到的一些常用且值得介绍的Android 基础知识和技术,包括Fragment.Slidingmenu.RecyelerView.HelloCharts框架和Ormlite框架. ...
- 关于android基础教程一书的初步解读后发现的一些问题
我是一个比较固执的人..在进行android基础教程一书的初步学习之后,说实话,这本书虽然说为了照顾有需要的童鞋,提供了所有的源代码,就连我也在亲自打了好久的代码之后最后决定放弃,也偷偷懒,进行简单无 ...
- Android基础总结+SQlite数据库【申明:来源于网络】
Android基础总结+SQlite数据库[申明:来源于网络] 基础总结篇之一:Activity生命周期:http://blog.csdn.net/liuhe688/article/details/6 ...
- Android基础教程pdf
下载地址:网盘下载 内容简介 · · · · · · <Android基础教程>内容完整丰富,具有较强的通用性,读者都能通过<Android基础教程>快速学习Android开 ...
- Android基础_数据存储
2019独角兽企业重金招聘Python工程师标准>>> Android基础_数据存储 Android数据存储的几种形式 继承SQLiteOpenHelper public class ...
- android各目录大小,Android 基础篇 — 放不同drawable文件夹中图片的大小
我们接着上篇文章Android 基础篇 - 不同DPI取哪个本地文件夹中的资源 讲,文末尾提到一个问题,为什么不同drawable文件夹中的图片大小在终端设备会不一样? 1 准备 在drawable- ...
最新文章
- 解决android Stadio 升级之后 出现乱码
- 会话跟踪技术Cookieless
- 《算法设计》二、算法分析基础
- php 请求转发 重定向,PHP怎么实现页面重定向?(图文+视频)
- DataTable某一列的值转化成集合
- mysql 注入 绕过防火墙_绕过阿里云防火墙继续扫描探测和SQL注入
- 阿里毕玄:推荐给Java程序员的7本好书
- Linux技术学习路线图
- 手机MODEM 开发(14)----高通平台手机开发之Modem
- 图书管理系统(微信、后台、网页端)总结
- [转载] python自定义error_Python 自定义异常处理Error函数
- python命名空间,类成员,对象成员
- illegal instruction问题窥探
- null怎么insert oracle,Oracle:如果行不存在,如何INSERT
- 计算机应用基础考试excel操作题,计算机应用基础上机操作试题
- 出纳使用的计算机如何管理,出纳杂谈:浅谈出纳工作的创新
- 各种显示接口DBI、DPI、LTDC、DSI、FSMC
- BIP语言介绍(一)
- 计算机专业英语辅导教材,计算机专业英语2全套教材.ppt
- 一文搞懂什么是QPS PV 关于并发的面试