起始页引导页+Fragment+viewLaout的一些简单使用
- List item
起始页引导页+Fragment+viewLaout的一些简单使用
下面由一些简单的介绍:
1. 首先是引导页的插入图片及滑动到最后一张图的一些点击事件
package com.bw.a618lianxi;import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.ViewPager;import java.util.ArrayList;
import java.util.List;public class Main2Activity extends AppCompatActivity {private ViewPager viewpager;private MyViewpagerAdapter myViewpagerAdapter;private List<Integer> images=new ArrayList<>();private List<ImageView> imageViews=new ArrayList<>();private TextView miao;private TextView tiaoguo;private boolean flag=false;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main2);tiaoguo = (TextView) findViewById(R.id.tiaoguo);miao = (TextView) findViewById(R.id.miao);viewpager = (ViewPager) findViewById(R.id.viewpager);images.add(R.mipmap.duanwu1);images.add(R.mipmap.duanwu2);images.add(R.mipmap.duanwu3);for (int i = 0; i <images.size() ; i++) {Integer integer = images.get(i);ImageView imageView=new ImageView(this);imageView.setImageResource(integer);imageViews.add(imageView);}myViewpagerAdapter=new MyViewpagerAdapter(imageViews);viewpager.setAdapter(myViewpagerAdapter);viewpager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {@Overridepublic void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}@Overridepublic void onPageSelected(int position) {if (position==imageViews.size()-1){tiaoguo.setVisibility(View.VISIBLE);new Thread(new Runnable() {int num=3;@Overridepublic void run() {for (int i = 0; i <=3; i++) {runOnUiThread(new Runnable() {@Overridepublic void run() {miao.setText(num+"s后进入");if (num==0){Intent intent = new Intent(Main2Activity.this, MainActivity.class);startActivity(intent);finish();}}});try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}num--;if (flag==true){break;}}}}).start();}}@Overridepublic void onPageScrollStateChanged(int state) {}});tiaoguo.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {flag=true;Intent intent = new Intent(Main2Activity.this, MainActivity.class);startActivity(intent);finish();Toast.makeText(Main2Activity.this,"立即体验",Toast.LENGTH_SHORT).show();}});}
}
2.引导页的适配器功能代码引入图片
package com.bw.a618lianxi;import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;import androidx.annotation.NonNull;
import androidx.viewpager.widget.PagerAdapter;import java.util.List;public class MyViewpagerAdapter extends PagerAdapter {private List<ImageView> imageView;public MyViewpagerAdapter(List<ImageView> imageView) {this.imageView = imageView;}@Overridepublic int getCount() {return imageView.size();}@Overridepublic boolean isViewFromObject(@NonNull View view, @NonNull Object object) {return view==object;}@NonNull@Overridepublic Object instantiateItem(@NonNull ViewGroup container, int position) {container.addView(imageView.get(position));return imageView.get(position);}@Overridepublic void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {//super.destroyItem(container, position, object);container.removeView(imageView.get(position));}
}
3.进入首页的Fragment+ViewLaout的数据添加及实现滑动效果
package com.bw.a618lianxi;import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;import com.google.android.material.tabs.TabLayout;import java.util.ArrayList;
import java.util.List;public class Myfragment1 extends Fragment {private ViewPager viewPager;private MyFragmentpagerAdapter myFragmentpagerAdapter;private TabLayout tablaout;private int[] image={R.mipmap.a,R.mipmap.b,R.mipmap.c,R.mipmap.d,R.mipmap.e};private int[] image2={R.mipmap.a1,R.mipmap.b1,R.mipmap.c1,R.mipmap.d1,R.mipmap.e1};private List<String> title=new ArrayList<>();private List<Fragment> datas=new ArrayList<>();@Overridepublic void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);}@Nullable@Overridepublic View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {View view = inflater.inflate(R.layout.myfragment1, null);viewPager = view.findViewById(R.id.fragment2);tablaout =view.findViewById(R.id.tablaout);return view;}@Overridepublic void onActivityCreated(@Nullable Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);Myfragmentone myfragmentone = new Myfragmentone();Myfragmenttwo myfragmenttwo = new Myfragmenttwo();Myfragmentthree myfragmentthree = new Myfragmentthree();Myfragmenttfour myfragmenttfour = new Myfragmenttfour();Myfragmenttfvie myfragmenttfvie = new Myfragmenttfvie();datas.add(myfragmentone);datas.add(myfragmenttwo);datas.add(myfragmentthree);datas.add(myfragmenttfour);datas.add(myfragmenttfvie);title.add("首页");title.add("图片");title.add("菜单");title.add("视频");title.add("商店");myFragmentpagerAdapter=new MyFragmentpagerAdapter(getChildFragmentManager(),datas,title);viewPager.setAdapter(myFragmentpagerAdapter);tablaout.setupWithViewPager(viewPager);for (int i = 0; i < tablaout.getTabCount(); i++) {tablaout.getTabAt(i).setIcon(image[i]);}tablaout.getTabAt(0).setIcon(image2[0]);viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {@Overridepublic void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}@Overridepublic void onPageSelected(int position) {System.out.println(position);if (position==1){tablaout.getTabAt(0).setIcon(image[0]);}tablaout.getTabAt(position).setIcon(image2[position]);for (int i = 0; i < tablaout.getTabCount(); i++) {if (i!=position){tablaout.getTabAt(i).setIcon(image[i]);}}}@Overridepublic void onPageScrollStateChanged(int state) {}});}
}
4.Fragment+ViewLaout的适配器代码如下:
package com.bw.a618lianxi;import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;import java.util.List;public class MyFragmentpagerAdapter extends FragmentPagerAdapter {private List<Fragment> data;private List<String> title;public MyFragmentpagerAdapter(@NonNull FragmentManager fm, List<Fragment> data,List<String> title) {super(fm);this.data = data;this.title=title;}public MyFragmentpagerAdapter(@NonNull FragmentManager fm, int behavior, List<Fragment> data) {super(fm, behavior);this.data = data;}@NonNull@Overridepublic Fragment getItem(int position) {return data.get(position);}@Overridepublic int getCount() {return data.size();}@Nullable@Overridepublic CharSequence getPageTitle(int position) {return title.get(position);}
}
小提示:要区分fragment和引导页适配器的不同,在fragment适配器继承的是FragmentPagerAdapter,而引导页是PagerAdapter,以及引导页要重写四个方法,fragment重写的是两个,要区分以上两者的不同点!!!
起始页引导页+Fragment+viewLaout的一些简单使用相关推荐
- 简单的php引导页面设计,PS简单制作唯美朦胧柔美的渐变APP引导页
今天小编为大家分享PS简单制作唯美朦胧柔美的渐变APP引导页方法,教程很不错,难度不是很大,推荐到脚本之家,大家快快来学习吧! 此适合和对颜色研究不深,又急需应用的朋友.小编良心保证,再零基础的同学也 ...
- viewpager 的工具类,内置多种指示器,能够帮你快速完成,轮播图,app 引导页,viewpager 的 tab 指示器等等
ViewPagerHelper 项目地址:LillteZheng/ViewPagerHelper 简介:这是一个,viewpager 的工具类,内置多种指示器,能够帮你快速完成,轮播图,app 引导 ...
- iOS最好用的引导页
为什么80%的码农都做不了架构师?>>> 最近项目结束的时候又要改引导页,之前写的启动页改起来太麻烦了,所以就直接封装一个,功能可能还不是很完善,但是感觉用起来也比较方便,在这 ...
- Uni-App 简单引导页示例
Uni-App 简单引导页示例 第一步:建3个页面文件.在pages目录下,新建index/init.vue.index/guide.vue.index/home.vue pages.json: {{ ...
- Android高级控件(四)——VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷
Android高级控件(四)--VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷 是不是感觉QQ空间什么的每次新版本更新那炫炫的引导页就特别的激动,哈哈,其实他实现起来真的很简单很 ...
- Android ViewPager简单实现 - 倒计时、引导页左右滑动
说明: ViewPager简单实现,方便以后用.做的是一个全屏的引导页. 截图: 代码: GuideActivity.java package com.xinyan.personal.ui.activ ...
- android自定义引导页,Android仿大众点评引导页(ViewPage)+主页面(Fragment)的实现
大家好,今天主要是实现仿大众点评引导页和主页面以及城市定位的实现,主要使用ViewPager+Fragment+SharedPreferences,实现了第一次打开程序出现引导页,再次打开跳过引导页, ...
- APP启动引导页的制作,用ViewPager实现翻页动画
#Android网络与数据存储 第一章学习 ####一个启动引导页的制作#### 概要: 这次制作App的引导页,主要用到2个知识"SharedPreferences 和 ViewPager ...
- 仿制慕课网app实现斗鱼,全民k歌视频引导页(ViewVideoViewPaper)炫酷效果
在几个月前,我第一次玩全民k歌,下载完app,它弹出来的引导页吸引了我,不像以前的引导页一样千篇一律,而是用了视频的方式,用一种动态的方式来实现.在今天,我突然又想起了这个效果,就抽出了一点时间在网上 ...
最新文章
- 在ATS 5.3.0上测试域名统计插件channel_stats
- Centos7.3 安装Mysql5.7并修改初始密码
- Linux服务器tomcat部署war包
- 一本书学会可视化设计 pdf_「读书」数据之美-一本书学会可视化设计
- 安卓最新系统_安卓最新10.0系统,新增功能都在这了!
- idea黑色好还是白色好_白色牛仔裤,好看又好搭
- (转)编码剖析@Resource注解的实现原理
- “富二代”京东健康狂奔,这一次能否赢了阿里?
- diff算法_Virtual Dom和Diff算法
- Linux系统非阻塞I/O select、poll和epoll非常好的两篇文章
- 分布式数据库中间件–(1) Cobar初始化过程
- Python基础之变量和常量
- 【PS基本操作】如何使用PS把图片背景去掉、透明背景
- NewLife kick off
- go语言学习-多重返回和匿名变量
- nestjs+vue+ts打造一个酷炫的星空聊天室(含完整数据库设计)
- python自动获取微信公众号最新文章
- 帝国cms 留言反馈 问题
- 简单理解操作系统之存储器管理
- 凡是函数中未指定存储类型_函数中未指定存储类别的局部变量,其隐含的存储类别为()...
热门文章
- Linux 普通用户权限
- mysql 分区表 range
- 【共享服务】nfs常见问题处理
- 世界杯预测神富而喜悦100%对!网友:靠你真能发财了!
- 完美解决#define _AFXDLL or do not use /MD[d]
- WordPress,Qui-Pure博客主题,自媒体模板
- 程序员常用不常见很难得的地址大全转
- Linux之重启reboot命令
- 使用wkhtmltopdf将html转为pdf
- reshape(1,-1)与reshape(-1,1)的理解