android 美团渐变,仿美团上拉背景渐变 FadeActionBar

本文介绍了一个名为FadingActionBar的库,通过简单的API即可实现在应用中上拉TitleBar背景渐变及下拉TitleBar隐藏的效果。开发者只需两步即可完成配置:添加依赖并初始化XMFadeBarHelper类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

软件介绍

FadingActionBar 仿美团上拉背景渐变,默认背景透明,下拉bar完全隐藏  。开发者使用此依赖,只需要2个方法就可以实现美团外卖中上拉titlebar背景渐变,下拉titlebar隐藏效果。

效果图:

243be47ecbcaba2f465c0058bca77f1b.gif

准备工作:

1.注意actionbar的依赖库,目前仅支持import android.app.ActionBar;

2.actionbar背景渐变需要监听headerview的位置,放在添加headerview后调用该方法private void initScroll() {

//设置动态改变

mlistview.setOnScrollListener(new AbsListView.OnScrollListener() {

@Override

public void onScrollStateChanged(AbsListView view, int scrollState) {

}

@Override

public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {

// [0]代表x坐标,location [1] 代表y坐标。

int[] location = new int[2];

// 实时设置actionbar透明度,监听header位置(必须是移除屏幕会产生负数的view)

llheaderview.getLocationInWindow(location);

helper.setActionBarAlpha(location[1] - XMSettings.getStatusBarHeight(mContext));

Log.i("tag", "onScroll: " + (location[1] - XMSettings.getStatusBarHeight(mContext)));

}

});

}

3.注意activity对应的theme添加属性

true

@null

使用

1.添加Gradle依赖dependencies {

compile 'com.github.ximencx.fadeactionbar:library:1.0.1'

}

2.activity中获取actionbar对象,初始化XMFadeBarHelper类private void initbar() {

//获取actionbar对象

mActionBar = getActionBar();

mActionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);

mActionBar.setCustomView(R.layout.ab_title);

/**

* actionbar辅助类

* parameter1:action对象

* parameter2:acitonbar背景

* parameter3:初始透明度

*/

helper = new XMFadeBarHelper(mActionBar, getResources().getDrawable(R.drawable.bg_actionbar), 0) {

/**

* 设置需要隐藏view的透明度

* 注意:是否设置background的区别

*

* @param customView  actionbar布局对象

* @param alpha 回调的alpha

*/

@Override

public void setViewAlpha(View customView, int alpha) {

ButterKnife.findById(customView, R.id.tv_info).setAlpha(alpha);

ButterKnife.findById(customView, R.id.rl_bg).getBackground().setAlpha(alpha);

}

/**

* 设置隐藏速度

* 默认返回actionbar布局的高度,当然也可以以其它view为参照物

* @param customView actionbar布局

* @return

*/

@Override

public int setHeight(View customView) {

return customView.getHeight();

}

};

}

3.listview的监听中调用helper.setActionBarAlpha(),注意减去状态栏的高度private void initScroll() {

//设置动态改变

mlistview.setOnScrollListener(new AbsListView.OnScrollListener() {

@Override

public void onScrollStateChanged(AbsListView view, int scrollState) {

}

@Override

public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {

// [0]代表x坐标,location [1] 代表y坐标。

int[] location = new int[2];

// 实时设置actionbar透明度,监听header位置(必须是移除屏幕会产生负数的view)

llheaderview.getLocationInWindow(location);

helper.setActionBarAlpha(location[1] - XMSettings.getStatusBarHeight(mContext));

Log.i("tag", "onScroll: " + (location[1] - XMSettings.getStatusBarHeight(mContext)));

}

});

}

sample中使用到的第三方库:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值