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

Fragment 与 ViewPager的联合应用(2)

 5.创建底部布局bottom_layout

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="horizontal"android:layout_width="match_parent"android:layout_height="55dp"android:background="@color/gray"><!--主页--><LinearLayoutandroid:id="@+id/id_tab_zy"android:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="1"android:orientation="vertical"android:gravity="center"android:layout_gravity="center"><ImageViewandroid:id="@+id/tab_iv_zy"android:background="@drawable/zy_show"android:layout_width="32dp"android:layout_height="32dp"/><TextViewandroid:id="@+id/text_zy"android:layout_width="32dp"android:layout_height="wrap_content"android:text="主页"android:gravity="center"/></LinearLayout><LinearLayout> ... </LinearLayout><LinearLayout> ... </LinearLayout><LinearLayout> ... </LinearLayout>//除id、background、text属性不一致,其余三个LinearLayout内容和第一个LinearLayout一致,所以不重复展示</LinearLayout>

res目录

6.在MainActivity中创建initTabView()函数  实现View.OnClickListener函数并监听

private void initTabView() {llZy = findViewById(R.id.id_tab_zy);llZy.setOnClickListener(this);llTxl = findViewById(R.id.id_tab_txl);llTxl.setOnClickListener(this);llFx = findViewById(R.id.id_tab_fx);llFx.setOnClickListener(this);llMe = findViewById(R.id.id_tab_me);llMe.setOnClickListener(this);imZy = findViewById(R.id.tab_iv_zy);imTxl = findViewById(R.id.tab_iv_txl);imFx = findViewById(R.id.tab_iv_fx);imME = findViewById(R.id.tab_iv_me);imCurrent = imZy;}
@Overridepublic void onClick(View view) {changeTab(view.getId());}
private void changeTab(int position) {imCurrent.setSelected(false);switch (position){case R.id.id_tab_zy:viewPager.setCurrentItem(0);case 0:llZy.setSelected(true);imCurrent = imZy;break;case R.id.id_tab_txl:viewPager.setCurrentItem(1);case 1:llTxl.setSelected(true);imCurrent = imTxl;break;case R.id.id_tab_fx:viewPager.setCurrentItem(2);case 2:llFx.setSelected(true);imCurrent = imFx;break;case R.id.id_tab_me:viewPager.setCurrentItem(3);case 3:llMe.setSelected(true);imCurrent =imME;break;}}

7.将bottom_layout添加至activity_main中

<include layout="@layout/bottom_layout"/>

8.实现viewpager和底部的响应  在initViewPager()中添加

viewPager.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);changeTab(position);}@Overridepublic void onPageScrollStateChanged(int state) {super.onPageScrollStateChanged(state);}});

基本完成viewpager和frgement简单的联合应用

http://www.lryc.cn/news/326033.html

相关文章:

  • OriginBot智能机器人开源套件
  • Java Web-Maven
  • .Net 异步委托
  • web前端面试题---->HTML、CSS
  • 移动端Web笔记day03
  • c++的学习之路:3、入门(2)
  • 面试经典150题【91-100】
  • 在 nginx 中使用 JavaScript
  • 【pytorch】安装合集
  • 【教程】PLSQL查看表属性乱码解决方法
  • 新书速览|Django 5企业级Web应用开发实战:视频教学版
  • excel创建和部分使用
  • pycharm使用远程服务器的jupyter环境
  • ES6 基础
  • 【双指针】Leetcode 有效三角形的个数
  • python项目练习——4.手写数字识别
  • 【目标检测】NMS算法的理论讲解
  • 3-iperf3 使用什么工具可以检测网络带宽、延迟和数据包丢失率等网络性能参数呢?
  • 阳光倒灌高准直汽车抬头显示器HUD太阳光模拟器
  • jdk11中自定义java类在jvm是如何被查找、加载
  • 单片机---独立按键
  • java分布式面试快问快答
  • AI:148-开发一种智能语音助手,能够理解和执行复杂任务
  • Kindling the Darkness:A Practical Low-light Image Enhancer
  • 图像处理与视觉感知---期末复习重点(4)
  • ABAP AMDP 示例
  • 发票查验接口C++语言如何集成、发票OCR
  • 【图论 | 数据结构】用链式前向星存图(保姆级教程,详细图解+完整代码)
  • 【蓝桥杯3.23小白赛】(详解)
  • 设计模式之抽象工厂模式精讲