关于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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 编程入门先学什么 java_编程入门先学什么?java的快速学习方法

    编程入门先学什么 java_编程入门先学什么?java的快速学习方法如何快速的入门java?下面让达内广州java培训的小编分享一些干货给大家吧!一、掌握静态方法和属性静态方法和属性用于描述某一类对象群体的特征,而不是单个对象的特征。Java中大量应用了静态方法和属性,这是一个通常的技巧。但是这种技巧在很多语言中不被频繁地使用。理解静态方法和属性对于理解类与对象的关系是十分有帮助的,在大量的Java规范中,静态方法和属性被频繁使用。因此学习者应该理解静态方法和属性…

    2022年5月3日
    42
  • curl 命令的使用:HTTP请求、下载文件、FTP上传下载

    curl 命令的使用:HTTP请求、下载文件、FTP上传下载本文链接:https://blog.csdn.net/xietansheng/article/details/846379931.curl命令简介cURL(CommandLineUniformResourceLocator),是一个利用URL语法,在命令行终端下使用的网络请求工具,支持HTTP、HTTPS、FTP等协议。cURL也有用于程序开发使用的版本libcurl。…

    2022年5月17日
    106
  • phpstorm2021激活码【2021最新】

    (phpstorm2021激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月28日
    104
  • SQL通配符

    SQL通配符通常我们只是用%作为通配符,用来表示任意个字符。但sql中的通配符还有下划线_,用来标识任意一个字符实例SELECT*FROMWebsitesWHEREnameLIKE&#

    2022年7月3日
    26
  • 基于multisim的语音放大器电路设计

    基于multisim的语音放大器电路设计目录目录 -1-1设计题目及目的 -3-1.1题目 -3-1.2目的 -3-2设计内容 -3-3实验要求 -3-4实验原理 -4-4.1前置放大电路 -4-4.2带通滤波电路 -4-4.3功率放大电路 -4-4.4整体组装电路 -4-5芯片功能及参数介绍 -5-5.1LM324N引脚及功能介绍 -5…

    2022年5月3日
    62
  • PhpStorm 2021.1激活码 有效期2021 3月破解方法

    PhpStorm 2021.1激活码 有效期2021 3月破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
    39

发表回复

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

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