关于Android导航页开发的体会

关于Android导航页开发的体会2019独角兽企业重金招聘Python工程师标准>>>…

大家好,又见面了,我是你们的朋友全栈君。

最近尝试做一个有社交网络服务和IM服务的项目,想使用比较流行的方式实现程序的导航,一开始

借鉴了网上的DrawerLayout加ViewPager的模式,但始终觉得界面不够直观,于是改变想法,采用

了底部大类导航栏加顶端Tab小类导航加ViewPager的导航模式,有点像微信的导航模式(某种程度上来

说有完全不像,笑),主要涉及到ViewPager,Fragment,FragmentPagerAdapter,由于网上例子

很多,主要写一些体会

 

程序界面:

关于Android导航页开发的体会

大类实现(我把底端的导航称为大类)

采用一组RadioGroup,在onCheckedChanged方法中给出Fragment的切换规则

使用selector为RadioButton设置触发时的响应

Fragment内容填充的一个FrameLayout布局中(注意设置layout_weight以保证占满屏幕)

中间的分割线可以考虑通过ImageView来实现(设置高度1dp,background为灰)

 

小类下的细分(使用ViewPager+FragmentPagerAdapter实现)

顶端的两个Tab可以考虑使用TextView+绘制滑动条来实现

重写FragmentPagerAdapter:

public class MyFragmentPagerAdapter extends FragmentPagerAdapter { private ArrayList<Fragment> fragmentsList; public MyFragmentPagerAdapter(FragmentManager fm) { super(fm); } public MyFragmentPagerAdapter(FragmentManager fm, ArrayList<Fragment> fragments) { super(fm); this.fragmentsList = fragments; } @Override public int getCount() { return fragmentsList.size(); } @Override public Fragment getItem(int arg0) { return fragmentsList.get(arg0); } @Override public int getItemPosition(Object object) { return super.getItemPosition(object); } }

在setAdapter时注意使用getChildFragmentManager,因为如果在Fragment中嵌套Fragment,要用

getChildFragmentManager

例子:

mPager.setAdapter(new MyFragmentPagerAdapter(getChildFragmentManager(), fragmentsList));

 

重写OnPagerChangeListener

转载于:https://my.oschina.net/sikilao/blog/376249

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139170.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JavaCV开发详解之1:调用本机摄像头并预览摄像头图像画面视频(建议使用javaCV最新版本)「建议收藏」

    JavaCV开发详解之1:调用本机摄像头并预览摄像头图像画面视频(建议使用javaCV最新版本)「建议收藏」快速传送至:javacv入门指南:序章javaCV系列文章:javacv开发详解之1:调用本机摄像头视频javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG、javaCV-openCV)javaCV开发详解之3:收流器实现,录制流媒体服务器的rtsp/rtmp视频文件(基于javaCV-FFMPEG)j…

    2022年6月12日
    30
  • Java 求两个整数的最大公约数和最小公倍数「建议收藏」

    Java 求两个整数的最大公约数和最小公倍数「建议收藏」笔试题 —-求两个整数的最大公约数和最小公倍数使用辗转相除法可以快速的实现求最大公约数,而最小公倍数可以通过最大公约数求出。import java.util.Scanner;/** * 求两个整数的最大公约数和最小公倍数 * @author LENOVO * */public class demo4 { public static void main(String[] …

    2022年6月13日
    26
  • 安卓传感器开发_android传感器开发

    安卓传感器开发_android传感器开发昨天利用Vibrator将手机改造成振动器,女票大人很满意,今天再接再厉,研究一下Android传感器如何开发……主要涉及到三个类,Sensor,SensorManager,SensorEventListener。看名字就知道大概意思了,Sensor传感器,SensorManager传感器管理者,SensorEventListener传感器事件监听。SensorManager开发者文档给的类简

    2022年9月29日
    2
  • Ubuntu20.04安装Mysql

    Ubuntu20.04安装MysqlUbuntu20.04安装Mysql1.1下载安装MySQL1.2通过apt安装MySQL服务2.1初始化配置2.2检查mysql服务状态3.1配置远程访问3.2新建数据库和用户3.3mysql服务命令4、数据库操作命令4.1mysql服务操作4.2数据库操作4.3表操作4.4修改表结构4.5数据操作4.6数据的备份与恢复4.7卸载1.1下载安装MySQL在Ubuntu中,默认情况下,只有最新版本的MySQL包含在APT软件包存储库中,要安装它,只需更新服务器上的包索引并安装默认包apt-get

    2022年7月22日
    14
  • SpringBoot 面试题及答案

    SpringBoot 面试题及答案文章目录1.什么是SpringBoot?2.SpringBoot有哪些优点?3.什么是JavaConfig?4.如何重新加载SpringBoot上的更改,而无需重新启动服务器?5.SpringBoot中的监视器是什么?6.如何在SpringBoot中禁用Actuator端点安全性?7.如何在自定义端口上运行SpringBoot应用程序?8.什么是YAML?9.如何实现SpringBoot应用程序的安全性?10.如何集成SpringBoot和Activ

    2022年5月21日
    42
  • vue路由懒加载的实现方式_vue路由懒加载实现原理

    vue路由懒加载的实现方式_vue路由懒加载实现原理1、当一个vue项目很大的时候,对于一些“暂时”用不到的组件,我们可以不进行加载,等到用到次组件时再加载。这样可以优化spa应用首次加载白屏情况,也给用户更好的体验。这样就是vue路由懒加载。2、常用的懒加载方式有两种:即使用ES中的import和vue异步组件2.1未使用懒加载importHelloWorldfrom’@/components/HelloWorld…

    2022年10月6日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号