点击或滑动view带动画的下滑展开显示隐藏内容的控件

本文介绍了如何实现一个自定义控件,该控件允许点击或滑动子视图时平滑地显示或隐藏内容。在需求分析中,要求视图展开和隐藏过程平缓过渡。实现方法是在`onMeasure`中获取隐藏内容的高度,并在点击时通过动画让其高度从0渐变至实际高度。在实际使用时,将此控件作为父布局,并调用`show()`方法来控制隐藏和显示。文章还提到,子视图中需要隐藏和显示的部分ID应为`ll_fs`,以匹配父控件的查找逻辑,并展示了项目中应用此效果的截图。
摘要由CSDN通过智能技术生成

需求:自定义一个控件,包含的子控件中有一个视图需要点击或滑动的时候平缓的显示或隐藏。
实现:我们只需要使该视图是跟随动画平缓的显示和隐藏,就不会出现不衔接的现象,所以,我们只需要在onMeasure中得到隐藏内容的高度,然后点击这个view的时候对隐藏的view startAnimation,让它的高度从0增长到onMeasure得到的这个View的measureHeight
使用:在布局中使用该类为父控件包住子视图,然后在代码中找到这个控件,然后通过控件中的show(fase)方法控制视图的隐藏和显示即可。需要注意的是:子视图中需要隐藏和显示的视图的id必须为ll_fs,你也可以修改为其他,但是必须是跟父控件中findviewByID是一致即可。
附上一张,我在项目中使用的效果图。
效果图

父控件的完整代码如下:

package com.eno.common.views;

import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.Transformation;
import android.widget.LinearLayout;

import com.eno.xyzq.page.R;

public class MyAnimationExpandableLayout extends LinearLayout {
   

    private Context mContext;
    private LinearLayout mContentView;
    int mContentHeight = 0;
    private boolean isExpand;//判断是否已经展开
    private Animation animationDown;//下拉显示动画
    private Animation animationUp;//上拉显示动画

    public 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值