实现掘金导航栏+float按钮其实可以很简单
相信经常使用掘金APP的用户来说应该会很熟悉掘金客户端的滑动效果,滑动时适时的隐藏掉Title和底部导航栏,使得更多的内容显示在用户的界面上,从而增加用户的阅读体验。
在本文中将带你使用第三方库来简单的实现掘金的导航栏+悬浮按钮效果
先贴下 ByeBurger库的github地址 :https://github.com/githubwing/ByeBurger
以及实现的最终效果图:
看着还挺不错的样子,进入正题。
1.首先理所当然的是引入编译库
allprojects {repositories {jcenter()maven { url "https://jitpack.io" }}
}dependencies {compile 'com.github.githubwing:ByeBurger:1.2.3'compile 'com.android.support:design:25.0.0'}
2. 在你的页面布局中使用CoordinatorLayout 作为页面布局的根节点,将需要控制隐藏与显示的View作为CoordinatorLayout 的直接子View,并添加 app:layout_behavior属性,布局格式如下:
<android.support.design.widget.CoordinatorLayout><!--这里放置你的Viewpager --><!--你的TitleView--> <TitleViewapp:layout_behavior="@string/bye_burger_title_behavior" /><!--底部导航栏 --> <BottomViewandroid:layout_gravity="bottom"app:layout_behavior="@string/bye_burger_bottom_behavior" /><!-- floating 悬浮按钮 --><FloatingActionButtonapp:layout_behavior="@string/bye_burger_float_behavior" /></android.support.design.widget.CoordinatorLayout>
这里的布局,你的TitleView可以是一个RelativeLayout,ToolBar,也可以是 TabLayout,BottomView同理。
在以上的效果图中,博主使用的是TabLayout,有小伙伴说Tab中的英文字母会变成大写,但没关系,可以使用以下方式来设置
<style name="MyTabStyle" parent="TextAppearance.Design.Tab"><item name="textAllCaps">false</item></style><style name="MyTabLayoutStyle" parent="Widget.Design.TabLayout"><item name="tabTextAppearance">@style/MyTabStyle</item></style>
然后在 TabLayout 中使用该样式。
3. 控制TitleView和底部导航栏以及悬浮按钮的显示与隐藏
ByeBurgerBehavior.from(mTitleView).hide()ByeBurgerBehavior.show(mBottomView).show()
需要注意的是:
1). 如果TitleView使用的是ToolBar的控件,别忘了将Theme改为NoActionBar
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
2). 注意布局的层级问题,需要控制显隐的控件,一定是CoordinatorLayout 的 直接子View
基本上到这里就完成使用ByeBurger库所具备的东西,剩下工作就只是实现你的Fragmen逻辑,在本文中由于TabLayout切换碎片的功能跟底部的导航栏类似,所以并未去实现切换逻辑。
最后是该demo的github地址:https://github.com/shanerou/WingAPP
实现掘金导航栏+float按钮其实可以很简单相关推荐
- IOS设置导航栏返回按钮,并添加事件返回主页面
IOS设置导航栏返回按钮,并添加事件返回主页面 前提是已经push了一个viewController了.才能使用. XXXTableViewController 里面书写 - (void)viewDi ...
- Swift - 重写导航栏返回按钮
// 重写导航栏返回按钮方法 func configBackBtn() -> Void { // 返回按钮 let backButton = UIButton(type: .custom) // ...
- 去掉 iOS 导航栏返回按钮文本三种方案
作者 | 街角仰望 责编 | 欧阳姝黎 方案一 自定义 UINavigationController 遵守 UINavigationBarDel 协议 实现下面方法: #pragma ma ...
- 钉钉导航栏分享按钮的显示/隐藏
钉钉导航栏分享按钮的显示/隐藏 隐藏 进行钉钉开发后,打开应用时右上角会有三个小点点"-",打开之后会显示一些分享功能或者查看链接的功能,这样对于应用的安全是存在隐患的,那么如何来 ...
- Swift自定义导航栏返回按钮
如何去除swift系统自带的导航栏返回按钮?可以自定义返回按钮 在swift中,怎么替换系统自带的导航栏返回按钮?比如说我要替换成一张返回按钮图片,点击返回到上一页 首先,看一下系统自带的导航栏返回按 ...
- 微信小程序导航栏或菜单栏吸顶效果简单实现
微信小程序导航栏或菜单栏吸顶效果简单实现 思路: 1.获取导航栏初始位置距顶部的距离s1(通过获取页面标签方法) 2.监听页面的滑动,获取滑动距离s2(使用onPageScroll) 3.当s2> ...
- MUI、HTML5+、HBuilder实现透明渐变导航栏+自定义按钮(右上角分享按钮)
先上效果图: js代码: mui.plusReady(function() {var ws = plus.webview.currentWebview();ws.setStyle({"tit ...
- ios开发返回按钮消失_iOS开发之自定义导航栏返回按钮右滑返回手势失效的解决...
我相信针对每一个iOS开发者来说~除了根视图控制器外~所有的界面通过导航栏push过去的界面都是可以通过右滑来返回上一个界面~其实~在很多应用和APP中~用户已经习惯了这个功能~然而~作为开发者的我们 ...
- uni-app 自定义导航栏 图片按钮
按钮据右边边框距离设置: document.getElementsByClassName('uni-btn-icon')[2].style.marginRight = '22px' 监听按钮状态: o ...
最新文章
- latin1_swedish_ci gbk_chinese_ci
- elasticsearch 第三篇(安装篇)
- Codeforces Round #596 (Div. 2)(第三场)
- Hadoop 面试题之Hbase
- C++中运算符重载的方法
- ThinkPHP框架开发的应用的标准执行流程
- 一种数据结构 跳表skiplist
- axios把post的RequestPayload格式转为formdata
- SQLServer windows身份验证连接字符串
- 听说你是程序员的,给我做个网站呗
- mysql innodb trx_如何区分MySQL的innodb_flush_log_at_trx_commit和sync_binlog
- setuptools清华源_setuptools与pip的依赖关系解决方案之间的差异
- BorderLayout布局管理器设置3个按钮
- windows安装多个maven_全网最容易理解的Maven安装、配置、集成演示
- 在github上参与开源项目日常流程
- Top 10 Security Issue Solution
- Django ORM models操作
- Centos5.8升级SSH到5.8p2
- excel 查一列字符是否在另一列中出现
- 节约服务器成本50%以上,独角兽完美日记电商系统容器化改造历程