首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当浮动按钮到达NestedScrollView内TextView的相同高度位置时,如何将浮动按钮的可见性设置为GONE?

要将浮动按钮的可见性设置为GONE,可以通过监听NestedScrollView的滚动事件,当滚动到指定位置时,修改浮动按钮的可见性。

首先,需要在布局文件中定义NestedScrollView和浮动按钮:

代码语言:txt
复制
<androidx.core.widget.NestedScrollView
    android:id="@+id/nestedScrollView"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="这里是文本内容" />

</androidx.core.widget.NestedScrollView>

<Button
    android:id="@+id/floatingButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    android:visibility="visible"
    android:text="浮动按钮" />

然后,在代码中找到NestedScrollView和浮动按钮,并设置滚动监听:

代码语言:txt
复制
NestedScrollView nestedScrollView = findViewById(R.id.nestedScrollView);
final Button floatingButton = findViewById(R.id.floatingButton);

nestedScrollView.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
    @Override
    public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
        // 获取TextView的位置
        TextView textView = findViewById(R.id.textView);
        int[] textViewLocation = new int[2];
        textView.getLocationOnScreen(textViewLocation);
        int textViewTop = textViewLocation[1];

        // 获取浮动按钮的位置
        int[] floatingButtonLocation = new int[2];
        floatingButton.getLocationOnScreen(floatingButtonLocation);
        int floatingButtonTop = floatingButtonLocation[1];

        // 判断浮动按钮是否到达TextView的位置
        if (floatingButtonTop >= textViewTop) {
            floatingButton.setVisibility(View.GONE);
        } else {
            floatingButton.setVisibility(View.VISIBLE);
        }
    }
});

这样,当NestedScrollView滚动到TextView的位置时,浮动按钮的可见性就会被设置为GONE。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

私人订制Android本地图片选择器

初始化GalleryFinal配置 通过代码设置图片选择器标题栏背景颜色,标题文本颜色,浮动按钮颜色; 通过监听事件,达到滚动不加载图片,停下来时加载图片,实现优化; 初始化功能配置; 防止代码分开查看导致逻辑混乱...) // 设置浮动按钮点击颜色 .setCheckSelectedColor(colorFabNormal) // 设置选中标记(对勾)颜色和按钮颜色相同 ....3.注释掉源码中对图片数量上限判断 无图选择,点击浮动按钮可以返回 可能有人不解,为何不点击标题栏返回按钮返回而要点击浮动按钮返回?...); mIvPreView.setVisibility(View.GONE); } } 当选中图片列表大小0时候,隐藏预览按钮;大于0时候再根据isEnablePreview...Button,ImageView变成TextView以及控件位置调整,在关联控件上和点击事件根据id来判断事件处理上做相应修改即可,在此不做赘述。

1.4K30

CoordinatorLayout使用全解析

enterAlwaysCollapsed:假设你定义了一个最小高度(minHeight)同时enterAlways也定义了,那么view将在到达这个最小高度时候开始显示,并且从这个时候开始慢慢展开,滚动到顶部时候展开完...CollapsingToolbarLayout子布局设置了parallax模式,我们还可以通过app:layout_collapseParallaxMultiplier设置视差滚动因子,值:0~...浮动操作按钮有一个 默认 behavior来检测Snackbar添加并让按钮在Snackbar之上呈现上移与Snackbar等高动画。...假设你定义了一个最小高度(minHeight)同时enterAlways也定义了,那么view将在到达这个最小高度时候开始显示,并且从这个时候开始慢慢展开,滚动到顶部时候展开完。...exitUntilCollapsed: 同样顾名思义,这个flag定义何时退出,当你定义了一个minHeight,这个view将在滚动到达这个最小高度时候消失。

2K20

Material Design —悬浮响应式按钮(Buttons: Floating Action Button)

屏幕宽度460dp或更小时,按钮大小应该从默认(56dp)变为最小尺寸(40dp)。 ?...这可以防止: ·悬浮响应式按钮在不在屏幕显示功能 ·悬浮响应式按钮与内容海拔相同感觉 ---- 变换 变换 浮动操作按钮是app中主要用例特别示例。...不要在浮动操作按钮操作中放置溢出菜单。 从最初屏幕应该最多只有两次点击就能到达预期目的地。 ? 将溢出操作置于工具栏中溢出菜单中,而不是悬浮响应式按钮中。 ?...该列表不应包含无关操作。 ? 变形 浮动操作按钮可以转换为属于应用程序结构一部分材料。 这种戏剧性变化突出了按钮所能实现动作。 悬浮响应式按钮变形,以有逻辑方式在开始和结束位置之间转换。...悬浮响应式按钮可以附加到工作表工具栏或结构元素(只要它不阻挡其他元素)。 ? 悬浮响应式按钮可以附加到薄片边缘。 ? 每个屏幕不要有多个浮动动作按钮。 ?

5.7K90

Android MVVM框架搭建(八)高德地图定位、天气查询、BottomSheetDialog

位置信息改变,进行坐标的搜索,在onMyLocationChange中添加如下代码: //创建一个经纬度点,参数一是纬度,参数二是经度 LatLonPoint...,先来修改一下map_fragment中代码,我们增加一个浮动按钮。...); 这样做就是让我们浮动按钮不至于挡住这个地图放大缩小按钮。...dialog.setOnDismissListener(dialog1 -> binding.fabWeather.show()); dialog.show(); }   点击浮动按钮时候就会出现这个弹窗...,出现弹窗后就隐藏浮动按钮,然后我们对弹窗样式进行了修改,同时绑定数据,设置数据到xml中,在再配置列表数据和适配器,最后是设置背景透明,以及弹窗消失时显示浮动按钮

1.8K30

再学一次ConstraintLayout 一些新特性

image.png 六、Visibility behavior 可见性行为 一个View在ConstraintLayout中被设置gone,那么你可以把它当做一个点(这个view所有的margin都将失效...属性如下(这些属性只有在给出宽度或高度wrap_content才会生效): android:minWidth 设置布局最小宽度 android:minHeight 设置布局最小高度 android...十、MATCH_CONSTRAINT尺寸(在1.1中添加) 一个view长宽设置MATCH_CONSTRAINT(即0dp),默认是使该view占用所有的可用空间....image.png 该比率可表示: 浮点值,表示宽度和高度之间比率 “宽度:高度”形式比率 如果两个尺寸都设置MATCH_CONSTRAINT(0dp),也可以使用比率。...,然后在构造函数里将自己设置GONE 并且setVisibility()空方法,该View就永远为GONE了. draw()方法空,意思是不用去绘画. onMeasure()中将自己长宽设置成0.

1.7K40

详解android特性之CoordinatorLayout用法探析实例

下面来看一个最简单例子,CoordinatorLayout与FloatingActionButton使用,它可以使浮动按钮上下移动,Snackbar流出空间来展示。...通过效果显示,视图在滚动时候,ToolBar滚出了屏幕,内容区域留出了更大空间。...假设你定义了一个最小高度(minHeight)同时enterAlways也定义了,那么view将在到达这个最小高度时候开始显示,并且从这个时候开始慢慢展开,滚动到顶部时候展开完。...exitUntilCollapsed: 同样顾名思义,这个flag定义何时退出,当你定义了一个minHeight,这个view将在滚动到达这个最小高度时候消失。...下面来通过flagexitUntilCollapsed,来实现Toolbar折叠显示效果。

89741

一文彻底搞清楚 Material Design

TranslationZ:动态海拔高度偏移高度,是一个偏移距离,是用来作动画效果,否则不要使用。 Translation Z 是动态创建一个项目,增加一个按钮按下按钮会阴影变大了。...这是 Android 使用默认状态列表动画,更改 Z 属性。 按钮动作效果,默认 FAB 有 6dp Elevation,按下按钮 translation Z 值开始增加。...动态海拔高度偏移:指的是从静止状态向目标海拔移动距离(translationZ) 组件海拔高度: 同一组件在不同应用中,海拔高度相同,比如:不同应用中浮动操作按钮海拔是相同 同一组件在不同平台和设备中...是不会显示出来,因为 TextView 默认海拔是0 ,就被 Cardview 给挡住了,因为 CardView 默认海拔是 2dp,如果你将 TextView 海拔设置 3dp 这个时候...关键阴影 环境阴影 关键阴影和环境阴影 黑暗下 材质环境中阴影由关键灯光和环境灯光投射共同产生。在Android和iOS开发中,光源在沿z轴各个位置处被“材质”表面阻挡,会出现阴影。

2.3K10

Android 天气APP(二十五)地图天气(下)嵌套滑动布局渲染天气数据

一、嵌套布局 在上一篇文章中,实现地图功能,只用了一个地图控件和一个浮动按钮。...展开之后里面是NestedScrollView和LinearLayout, BottomSheetBehavior上滑 展开后主要滑动布局 上滑时会展示里面所有内容,下滑没有多余内容时会响应上层BottomSheetBehavior...,之前是只有一个浮动按钮点击事件,现在多了一个,所以用switch来解决,15日天气预报详情就点击到之前我写好一个Activity里面,传入数据。...,我改动了一下这个按钮显示位置,现在会出现在屏幕左上角,当然这个按钮还需要和我们协调布局做一些效果,就是当我向上拖动底部布局,此时如果是手动定位则浮动按钮隐藏,向下收缩则浮动按钮显示。...展开就要隐藏浮动按钮,因为这时候你是没有办法操作地图 if (markerLatitude !

1.9K20

Android 高德地图API(详细步骤+源码)二

aMap.setLocationSource(this); // 设置true表示显示定位层并可触发定位,false表示隐藏定位层并不可触发定位,默认是false...); ② 设置缩放等级 然后再修改缩放等级, //设置最小缩放等级16 ,缩放级别范围[3, 20] aMap.setMinZoomLevel(12); 最终设置如下图所示: [...在地图表达中,一个 POI 代表一栋大厦、一家商铺、一处景点等等。通过POI搜索,完成找餐馆、找景点、找厕所等等功能。...[xw26e6e4b7.png] 然后添加一个queryPOI()方法,这个方法对应了xml中浮动按钮onClick值。...*/ @Override public void onPoiItemSearched(PoiItem poiItem, int i) { } 下面运行之后点击一下这个右下角浮动按钮

3.3K21

Material Design — 按钮( Buttons)

卡片 按钮最好放在卡左侧以增加其可见度。 但是,由于卡片具有灵活布局,因此可以将按钮放置在适合内容和上下文位置,同时保持产品一致性。...对于其他语言,平面按钮彩色文本将它们与普通文本区分开来。 无障碍 为了确保残疾人可用性,需要按钮高度36dp,热区最低高度48dp。 ?...左:页面内容多    右:内容分界 ? 背景比较嘈杂时候使用浮动按钮 浮动按钮就像一块放在另一张纸上材料 - 点击浮起并填充颜色。 ? 按钮海拔 浮动按钮默认海拔2dp。...在桌面上,浮动按钮可以在悬停获得此海拔。 ?...例如,聚焦一个切换按钮,焦点可能会同时显示组中其他切换按钮

3.8K160

Floating Action Button-Android M新控件

建议在手机上下方margin设置16dp而平板上设置24dp。上面的例子中,使用是16dp。 而根据谷歌设计规范,drawable尺寸应该是24dp。 ?...实际上只需要指定一个布局文件,就可以看到效果了,只不过是这时候FAB是固定在屏幕指定位置,而无法随之滚动,不着急,下面会介绍如何设置滚动FAB 属性介绍 FAB 默认使用应用主题中设置浮起色作为按键背景...设置 FAB 按下景深(默认是 12dp)。...目前浮动操作按钮默认behavior是Snackbar让出空间,就如这个视频中效果。...调整按钮类型 浮动操作按钮有两种大小:默认,这应该是最常用情况,以及mini,这应该只用于衔接屏幕上其他元素。 可以把FAB按钮类型调整“正常”或者“mini” ...

1.4K40

Android编程实现悬浮窗获取并显示当前内存使用量方法

,即以屏幕左上角原点 x = event.getRawX(); y = event.getRawY() - 25; // 25是系统状态栏高度 Log.i("currP", "currX" + x...,即以屏幕左上角原点 x = event.getRawX(); y = event.getRawY() - 25; // 25是系统状态栏高度 Log.i("currP", "currX" + x...另:在设置View高度和宽度时候一 个错误,即在View构造函数中获取getWidth()和getHeight(),一个view对象创建,android并不知道其大小,所以 getWidth()...: 在这里是设置成了所有应用程序之上,状态栏之下形式,移动时候,会调用case MotionEvent.ACTION_MOVE: 下面的代码主要是: private void updateViewPosition...(view, wmParams); } 从新设置浮动位置参数。

1.5K21

在 Flutter 中创建拖动浮动操作按钮

本教程有一个示例,说明您需要做什么才能创建浮动操作按钮,只要它位于父小部件,就可以将其拖动到屏幕周围任何位置。 创建拖动浮动操作按钮 我们将为这样小部件创建一个类。...该Listener小部件具有onPointerMove可用于反馈指针移动事件,这将被称为参数。...一个浮动动作按钮通常可以在点击执行一个动作,所以我们添加一个名为onPressed( VoidCallback) 参数作为参数。...通常,所需行为是onPressed仅在点击按钮时调用回调,而不是在拖动结束时调用。然而,拖动结束,指针向上事件也会被触发。作为解决方案,我们需要跟踪按钮是否被拖动。...下面是用于创建拖动浮动操作按钮类。它有一些参数,包括child(要设置按钮小部件)、initialOffset(移动前初始偏移量)和onPressed(单击按钮时调用回调)。

5.6K10

Android 高德地图API(详细步骤+源码)三

--浮动按钮--> <com.google.android.material.floatingactionbutton.FloatingActionButton android:...app:hoveredFocusedTranslationZ="18dp" app:pressedTranslationZ="18dp" /> 图标 [在这里插入图片描述] 这里我改变了浮动按钮大小...,然后增加了一个删除标点按钮点击地图显示这个浮动按钮,然后点击按钮清空地图,当然这个清空要稍微麻烦一点,特别是你地图上有多个标点时候。...现在addMarker方法中设置InfoWindow中信息信息。...⑨ 改变地图中心点   我们在实际使用中通常会有这样操作,希望点击一下就可以移动到所在地,这其实是比较容易做到,回顾我们现在是一进入地图就会定位到当前所在地,而当我点击地图上其他位置,会增加一个标点

3.6K31

终于等到你,新虚拟键盘API 即将到来,快来先睹快吧!

键盘激活浮动按钮应该移动到键盘上方。就像第一个例子中一样,浮动按钮将位于键盘下方。 为了解决这个问题,我们可以使用 env(keyboard-inset-height) 值。...桌面使用不同值 假设我们想在桌面浏览器上进一步调整浮动按钮位置,我们该如何做呢?嗯,我考虑使用 max() 比较函数,结果行得通。...请观看以下视频以了解问题感觉: 使用虚拟键盘 API 比较函数 根据虚拟键盘见性来改变按钮形态 这可能是一个无用用例或示例,但一个功能被充分利用时,看到发生事情是很有趣。...以下是正在发生事情: right 值将是 1rem 或 zero 。前者用于桌面,后者用于移动设备(键盘激活)。100vw 在这种情况下等于键盘宽度,因此结果零。...在这种状态下, max() 函数第二部分是不活动键盘激活, max() 第二部分将起作用, bottom 值将变为键盘高度

32920

安卓入门-第三章-安卓常用控件使用方式

这时由于EditText高度指定是wrap_content ,因此它总能包含住里面的内容,但是输入内容过多时,界面就会变得非常难看。...,传入数据:View.VISIBLE 、View.INVISIBLE 和View.GONE style 控制进度条格式,默认进度条动态环形,可以改为拖动条 android:max 用于给拖动条设置最大大小...我们还可以通过代码来设置控件见性,使用是setVisibility() 方法,可以传入View.VISIBLE 、View.INVISIBLE 和View.GONE 这3种值。...方法对话框设置确定按钮点击事件(对应于确定OK按键) 调用setNegativeButton() 方法设置取消按钮点击事件(对应于Cancel按键) 最后调用show() 方法将对话框显示出来。...当然,本书后面涉及一些我们前面没学过控件和相关用法,我仍然会在相应章节做详细讲解。

1.8K20

项目需求讨论 — ConstraintLayout 详细使用教程

比如我们A按钮已经确定好位置了。我们现在要放B按钮,就像我们上面说,我们B按钮二个边位置,我们可以设置让B按钮左边靠着A按钮右边(相当于B按钮左边与A按钮右边处于同一位置)。...与idbuttonA控件right相同位置。...gone,这时候B位置就会自动往左边了。...这时候因为不是单纯一边对齐,而是相同直线上二个边都被约束了。所以按钮无法紧靠着左边或者右边其中一个边界,所以这时候,这个按钮就会居于二个约束边界中间位置。如下图所示: ?...或layout_constraintHeight_percent属性设置介于0和1之间值) 下面的TextView控件将占据剩余宽度50%和剩余高度50%: <TextView

1.6K20

css笔记 - 张鑫旭css课程笔记之 overflow 篇

overflow-x/y(ie8+)规范: 如果overflow-x、overflow-y相同,则等同于overflow设置了这个值。...如果overflow-x、overflow-y值不相同,且其中一个属性值被赋予visible,而另一个被赋予scroll、auto、hidden等值,那么visible会被重置auto。...拉伸 对于单元格td等,还需要tabletable-layout:fixed;状态才行 overflow妙用 IE7浏览器下,文字越多,按钮两侧padding留白就越大。...缺失现象:(非chrome) 即,如果父元素中内容高度超出出现滚动条,同时父元素又有padding-bottom值,那么在非chrome浏览器中,padding-bottom可能不在滚动高度计算范围。...元素设置position:absolute;绝对定位且无方位值(left、right、bottom、top)设置

2.8K10

android 应用内部悬浮拖动按钮简单实现代码

本文介绍了android 应用内部悬浮拖动按钮简单实现代码,分享给大家,具体如下: ?...可以悬浮在activity上面,在加载fragment悬浮按钮不会消失 实现方式很简单,因为是在应用内部拖动,只需要通过Activity获取WindowManager,然后将要拖动view设置上去就行...DisplayMetrics(); activity.getWindowManager().getDefaultDisplay().getMetrics(dm); //通过像素密度来设置按钮大小...dm = new DisplayMetrics(); activity.getWindowManager().getDefaultDisplay().getMetrics(dm); //通过像素密度来设置按钮大小...case BUTTOM: wmParams.y = screenHeight - dpi; break; } wm.updateViewLayout(this, wmParams); } // 更新浮动窗口位置参数

3.3K10
领券