关于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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 4个问题带你了解用户画像

    4个问题带你了解用户画像你是否在工作中遇到过以下场景:公司新产品上线,团队一起讨论新产品的用户是谁?优先开拓哪些用户?产品优化时候考虑,目前功能是否满足用户需求?产品页面是用户喜欢的风格吗?投放广告时需要…

  • 参数估计

    参数估计

    2021年11月19日
  • Layui二级菜单优化

    Layui二级菜单优化刚开始学习layui框架,碰到一个缺陷是二级菜单每次点击都会收缩到原始状态。用 Request.Url.ToString();获取URL判断点击页面前哪些节点是展开的,添加class=\"layui-nav-itemlayui-nav-itemed\"&gt;(展开子节点)解决了。代码如下:for(vari=0;i&lt;data.length;i++){…

  • 阿里云ECS部署ES

    阿里云ECS部署ES

    2021年11月28日
  • iterator迭代器详解_迭代器是什么

    iterator迭代器详解_迭代器是什么迭代器 Iterator动机模式定义实例结构要点总结笔记动机在软件构建过程中,集合对象内部结构常常变化各异.但对于这些集合对象.我们希望在不暴露其内部结构地同时.可以让外部客户代码透明地访问其中包含地元素;同时这种”透明遍历”也为”同一种算法在多种集合对象上进行操作”提供了可能.使用面向对象技术将这种便利机制抽象为”迭代对象”为”应对变化中地集合对象”提供了一种优雅地方式模式定义提供了一种方法顺序访问一个聚合对象中地各个元素,而又不暴露(稳定)该对象地内部表示.实例结构要点总结迭代抽象

  • matlab中的colorbar用法(显示色阶的颜色栏)

    matlab中的colorbar用法(显示色阶的颜色栏)原文matlab画平面分布图时colorbar的设置是非常重要的,好的colorbar不仅使图像更美观,而且能够使人更容易捕捉图上传递的信息。用过matlab的同学都知道matlab默认的colormap是jet,也就是你画完图后输入“colorbar”它所显示出来的颜色。此外,matlab还自带了很多colormap,如hsv,autumn,bone,colorcube等等。我们直接…

发表回复

您的电子邮箱地址不会被公开。

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