# StickyNavLayout **Repository Path**: caopeng000/StickyNavLayout ## Basic Information - **Project Name**: StickyNavLayout - **Description**: android-自定义控件-悬浮控件-仿360手机助手应用详情页 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-02-01 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # StickyNavLayout 悬浮控件 # 特点 * 1.顶部支持ScrollView及ScrollView大于一屏幕的情况

* 2.悬浮区域支持普通view,viewgroup

* 3.内容支持GridView-GridViewWithHeaderAndFooterFragment(支持header和footer的GridView)

ScrollView,ListView,RecyclerView以及对应的空布局及loading布局。

* 4.支持在外面包装SwipeRefreshLayout,ultra-ptr 下拉刷新

* 5.支持悬浮回调

#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.2 jar sources ``` # Gradle ```java compile 'com.gxz.stickynavlayout:library:1.3.2' ``` #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造成内容区域底部显示不全问题,最近丢三落四的! #V1.3.2版本 修改一些bug