# StickyNavLayout **Repository Path**: wu4321/StickyNavLayout ## Basic Information - **Project Name**: StickyNavLayout - **Description**: android-自定义控件-悬浮控件-仿360手机助手应用详情页 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-05-23 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # StickyNavLayout 悬浮控件 该项目是在一个开源项目的基础上修改的

原项目地址: 修改如下:

1.在原基础上支持对内容listview等控件空布局的滑动支持

2.修改当刚刚悬浮的时候抬起手触发onItemClick事件的bug

3.修改手快速滑动的时候触发onItemClick事件的bug

4.增加一些自定义属性,后文有介绍

5.增加是否处于悬浮的回调接口,和滑动到悬浮状态的比例:0~1 ;1~0 之间变化的数字

6.增加对GridView-GridViewWithHeaderAndFooterFragment(支持header和footer的GridView)

7.修改其它一些bug

8.将原文迁移到AS中

9.将此项目发布到JCenter,方便大家的使用哦

#GridViewWithHeaderAndFooterFragment #声明 本项目纯属开源,只是为了更好的提高Android的开发技术,小宝贝们~~~~~ # 效果图

#自定义属性 ```java ``` #stickOffset 属性细说 现在悬浮是当top区域完全滑动到屏幕外面时,中间的悬浮区域悬浮起来了,如果你有这么一种需求是距离悬浮区域有一定的距离比如(40dp)可以用这个属性,满足需求. #使用时的注意事项 注意控件id的设置

top区域:id必须为: android:id="@+id/id_stickynavlayout_topview"

悬浮区域:id必须为: android:id="@+id/id_stickynavlayout_indicator"

内容区域:id必须为: android:id="@+id/id_stickynavlayout_viewpager"

内容区域

1.比需为ViewPager或者其子类

2.ViewPager的内容可以是Fragment,如果Fragment想用ListView,RecycleView等需要设置其id为:

android:id="@+id/id_stickynavlayout_innerscrollview"

比如:

```java ``` or ```java ``` #使用 ```java ``` #TopView(顶部区域大于一屏) ```java ``` # Java 代码使用 相信你可以点一下就知道什么用了 .... 是不是呢?小宝贝~~~!! #接口回调 ```java stickyNavLayout.setOnStickStateChangeListener(new StickyNavLayout.onStickStateChangeListener() { @Override public void isStick(boolean isStick) { } @Override public void scrollPercent(float percent) { } }); ``` #Maven ```java com.gxz.stickynavlayout library 1.3.1 jar sources ``` # Gradle ```java compile 'com.gxz.stickynavlayout:library:1.3.1' ``` #Demo Demo中的导航控件是:PagerSlidingTabStrip

是我一个开源项目: #V1.1版本 1.增加如果TopView大于一屏TopView无法显示的问题,比如顶部区域为ScrollView

2.支持顶部区域可以是ScrollView #V1.2版本 1.修复TOP区域中不支持控件动态GONE/VISIBLE的BUG

使用用法,设置完GONE/VISIBLE后调用updateTopViews();方法

```java @OnClick(R.id.show) public void show() { button1.setVisibility(View.VISIBLE); // button2.setVisibility(View.VISIBLE); linearLayoutLayout.setVisibility(View.VISIBLE); stickyNavLayout.updateTopViews(); } @OnClick(R.id.hide) public void hide() { button1.setVisibility(View.GONE); // button2.setVisibility(View.GONE); linearLayoutLayout.setVisibility(View.GONE); stickyNavLayout.updateTopViews(); } ``` 再次 如果你动态修改了top区域中有关view(比如TextView的文本-这时高度就变了),这是你需要在修改完后重新调用如下方法,更新高度

比如:

```java textViewMsg.setText(getResources().getString(R.string.msg)); stickyNavLayout.updateTopViews(); ``` 从而可以避免topView有空白或者高度不够的问题

2.增加setStickNavAndScrollToNav方法.

该方法的意思是:java代码动态设置悬浮,并自动滚动到悬浮位置(即把top区域滚动上去),详细见demo中的TopOperateActivity #V1.3版本 修改因1.2版本造成的stickOffset不起作用的问题 #V1.3.1版本 修改stickOffset造成内容区域底部显示不全问题,最近丢三落四的!