问题重现,如下图:
import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.LinearLayout;
/**
*
* @author 作者:易皇星
*
* @toTODO 类描述: 可直接控制所有子控件是否可点击的LinearLayout
*/
public class ChildClickableLinearLayout extends LinearLayout {
// 子控件是否可以接受点击事件
private boolean childClickable = true;
public ChildClickableLinearLayout(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}public ChildClickableLinearLayout(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}public ChildClickableLinearLayout(Context context) {
super(context);
// TODO Auto-generated constructor stub
}/**
* 重写onInterceptTouchEvent()
*/
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
// 返回true则拦截子控件所有点击事件,如果childclickable为true,则需返回false
return !childClickable;
}/**
* 然后就像正常LinearLayout一样使用这个控件就可以了。在需要的时候调用一下setChildClickable,
* 参数为true则所有子控件可以点击,false则不可点击。
*
* @param clickable
*/public void setChildClickable(boolean clickable) {
childClickable = clickable;
}}
【Android 之控制所有子控件是否可点击的LinearLayout】使用:
ll_home_navigation = (ChildClickableLinearLayout)getView(R.id.ll_home_navigation);
ll_home_navigation.setChildClickable(false);
推荐阅读
- 从零开发一个完整的Android项目(九)——图片浏览
- Android开发|ViewPager自适应高度问题
- Android|Android 指定销毁一个Activity
- 【Android】简单图片浏览器
- 理解ButterKnife(自动生成绑定资源的代码)
- MAC下搭建Android Studio
- NestedScrollingParent 和NestedScrollingChild 实现嵌套滑动
- android用shape画一条横线
- 华为推送 的坑
- Duplicate class com.alipay.a.a.a found in modules classes.jar (:alipaySdk-15.6.2-20190416165036:) an