ViewGroup点击时修改内部View状态或透明度
2017-12-22 16:55
190 查看
使用ViewGroup包裹View作为RecyclerView等列表控件中item的布局是一种常见的场景,点击item的时候如果希望修改子View的透明度则可以给重写ViewGroup,修改setPressed(boolean pressed)方法,在pressed参数为true时,给所有的子View设置透明度或者设置其他按压时需要显示的状态,在pressed参数为false时恢复为之前的状态即可,下面是一个自定义FrameLayout,实现了按压状态时内部所有View透明度的修改,但要记得给FrameLayout设置点击事件OnClickListener,否则看不到效果
/** * 给子view设置点击后透明度变化 */ public class PressAlphaFrameLayout extends FrameLayout { public PressAlphaFrameLayout(@NonNull Context context, @Nullable AttributeSet attrs) { super(context, attrs); } public PressAlphaFrameLayout(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override public void setPressed(boolean pressed) { super.setPressed(pressed); if (pressed) { for (int i = 0; i < getChildCount(); i++) { View view = getChildAt(i); view.setAlpha(0.6f); } } else { for (int i = 0; i < getChildCount(); i++) { View view = getChildAt(i); view.setAlpha(1.0f); } } } }
相关文章推荐
- 点击ViewGroup时其子控件也变成pressed状态的原因分析及解决办法
- android中点击viewgroup时,子控件也会变成被点击的状态的原因及解决方法
- 右键点击修改数据状态排序
- Android ViewGroup点击效果(背景色)
- 深入到ViewGroup内部,了解ViewGroup的工作
- 设置TextView等View组件点击效果。点击修改背景。字体颜色等
- 实现带快速导航的ListView(自定义View和自定义ViewGroup的结合),可直接使用和修改使用
- 在Layout响应点击事件但不传递给内部的childView
- RrecyclerView自定义点击长按添加删除修改
- android 点击webView中的按钮修改布局问题
- Android6.0源码解读之ViewGroup点击事件分发机制
- ViewGroup setVisibility 为GONE 子View依然占用地方,其中的子EditText会出现点击焦点占用
- 标题栏随RecyclerView滑动动态修改透明度
- 自定义viewGroup实现点击动画效果
- 微信小程序实现点击按钮修改view标签背景颜色功能示例【附demo源码下载】
- 自定义ViewGroup---点击控件时水波纹效果
- Viewpager中的Fragment第一次点击时加载,然后保存其状态
- 当UITableView 在编辑状态时,点击cell,不调用didSelectedRowAtIndexPath解决办法
- 多个按钮或VIEW,点击改变状态 简易的实现方法
- 自定义ViewGroup (支持margin,gravity以及水平,垂直排列,滑动和点击事件)