当前位置: 首页 > news >正文

Android开发教程viewpager2点击指示标也能切换

Android开发教程viewpager2点击指示标也能切换

viewpager2的使用范例,关键是点击指示标也能切换

一、思路:

用viewpager2加两个imageview

二、效果图:

在这里插入图片描述

三、关键代码:
public class MainActivity extends AppCompatActivity {private ViewPager2 viewPager2;//private SlidingTabLayout stl_title;private ImageView iv1;private ImageView iv2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);viewPager2 = findViewById(R.id.viewpager2);iv1 = findViewById(R.id.iv1);iv2 = findViewById(R.id.iv2);//stl_title = findViewById(R.id.stl_title);FragmentStateAdapter fragmentStateAdapter = new FragmentStateAdapter(this) {@NonNull@Overridepublic Fragment createFragment(int position) {return new CatalogFragment(position);}@Overridepublic int getItemCount() {return 2;}};viewPager2.setAdapter(fragmentStateAdapter);iv1.setBackgroundColor(Color.RED);iv2.setBackgroundColor(Color.parseColor("#eeeeee"));viewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {@Overridepublic void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {super.onPageScrolled(position, positionOffset, positionOffsetPixels);}@Overridepublic void onPageSelected(int position) {super.onPageSelected(position);if (position == 0){iv1.setBackgroundColor(Color.RED);iv2.setBackgroundColor(Color.parseColor("#eeeeee"));} else {iv2.setBackgroundColor(Color.RED);iv1.setBackgroundColor(Color.parseColor("#eeeeee"));}}@Overridepublic void onPageScrollStateChanged(int state) {super.onPageScrollStateChanged(state);}});iv1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {viewPager2.setCurrentItem(0);}});iv2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {viewPager2.setCurrentItem(1);}});//        ArrayList<String> arrayListTitle = new ArrayList<>();
//        arrayListTitle.add("京东1");
//        arrayListTitle.add("京东2");
//        stl_title.setViewPager2(viewPager2, arrayListTitle);}
}
四、项目demo源码结构图:

在这里插入图片描述
有问题或者需要完整源码的私信我


http://www.mrgr.cn/news/63155.html

相关文章:

  • Pytest-Bdd-Playwright 系列教程(6):在测试步骤函数中设置别名数据共享
  • 在linux中arm-linux-gcc和/usr/bin/gcc有啥区别
  • [ 应急响应靶场实战 ] VMware 搭建win server 2012应急响应靶机 攻击者获取服务器权限上传恶意病毒 防守方人员应急响应并溯源
  • X86下fftw3库的编译和链接undefined reference to fftwf_malloc
  • [数组基础] 0238. 除自身以外数组的乘积
  • Python飞舞蝙蝠
  • (C#面向初学者的 .NET 的生成 AI) 第 2 部分-什么是 AI 和 ML?
  • 解读!中国人工智能大模型技术白皮书!
  • 基于SSM医药进出口交易系统的设计
  • 大语言模型(LLMs)在安全芯片设计中应用
  • Ubuntu 系统、Docker配置、Docker的常用软件配置(下)
  • Vite构建生产配置“build:prod“: “cross-env NODE_ENV=production vite build“含义
  • 「C/C++」C/C++标准库 之 <cstring> 字符串操作库
  • 【css】CSS 文本溢出显示省略号
  • Ubuntu最简单安装OpenCV
  • OpenCV基础01
  • 树莓派基本设置--4.网络设置
  • 9.排队模型-M/M/1
  • LabVIEW在Windows和Linux开发的差异
  • 学习记录:js算法(八十一):子集
  • C++算法第五天
  • 安捷伦E4991A E4990A阻抗分析仪LCR电桥3Ghz高频
  • js选项卡
  • qt 如何在本地进行打包
  • 什么是矩阵的秩,矩阵的秩如何计算?
  • 多线程学习篇七:ReentrantLock