Android 滑动渐变背景Toolbar、点击置顶ScrollView

本文介绍了如何在Android应用中实现滑动时Toolbar背景的渐变效果,以及添加点击置顶功能的ScrollView。通过引入Google Material库和Glide图片加载框架,自定义GoTopNestedScrollView类并监听滚动变化来控制置顶按钮的显示和隐藏。同时,文中还提到了状态栏的透明化处理和相关面试题分享。
摘要由CSDN通过智能技术生成

在这里插入图片描述

//Google Material控件,以及迁移到AndroidX下一些控件的依赖

implementation ‘com.google.android.material:material:1.0.0’

//图片加载框架

implementation ‘com.github.bumptech.glide:glide:4.10.0’

annotationProcessor ‘com.github.bumptech.glide:compiler:4.10.0’

在这里插入图片描述

然后记得Sync

最后修改样式,打开res下的values下的styles.xml

在这里插入图片描述

现在进入到activity_main.xml中

这里面用了两个图片资源

top_bg.jpg

在这里插入图片描述

icon_return_top.png

在这里插入图片描述

布局中用到了一个自定义VIew, 新建一个GoTopNestedScrollView类

代码如下:

package com.llw.slidelayoutdemo;

import android.content.Context;

import android.util.AttributeSet;

import android.view.View;

import android.widget.ImageView;

import androidx.annotation.NonNull;

import androidx.annotation.Nullable;

import androidx.core.widget.NestedScrollView;

/**

  • 回到顶部ScrollView

*/

public class GoTopNestedScrollView extends NestedScrollView implements View.OnClickListener {

private ImageView goTopBtn;//展示置顶的图片按钮

private int screenHeight = 500;//屏幕高度 没有设置则默认500

public GoTopNestedScrollView(@NonNull Context context, @Nullable AttributeSet attrs) {

super(context, attrs);

}

//设置滑动到多少出现

public void setScreenHeight(int screenHeight) {

this.screenHeight = screenHeight;

}

//设置滚动置顶按钮以及其点击监听事件,

public void setImageViewOnClickGoToFirst(ImageView goTopBtn) {

this.goTopBtn = goTopBtn;

this.goTopBtn.setOnClickListener(this);

}

//重写滚动改变返回的回调

// l oldl 分别代表水平位移

// t oldt 代表当前左上角距离Scrollview顶点的距离

@Override

protected void onScrollChanged(int l, int t, int oldl, int oldt) {

super.onScrollChanged(l, t, oldl, oldt);

/**

  • 滑动距离超过500px,出现置顶按钮,可以做为自定义属性

  • 滑动距离如果用户设置了使用用户的 如果用户没有设置使用默认的

*/

//当 当前的左上角距离顶点距离 大于某个值的时候就显现置顶按钮出来 如果小于某个值就隐藏

if (screenHeight != 0) {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值