android触摸透传,教你Android 透明布局点击不穿透的处理方法

项目需求,当webview在加载时,弹出一图层,显示正在加载中,背景是透明的,然后就遇到了当图层弹出时背面还是能点击,于是在不居中设置了 android:clickable=”true”

然而诡异的事情出现了,点击的时候点击监听确实不能穿透,但是TextView现实的”正在加载中,请稍后…”却在点击的时候消失了,最后在java对改层进行了处理:

//防止点击穿透问题relativeLayout.setOnTouchListener(new View.OnTouchListener() {

@Override

public boolean onTouch(View view, MotionEvent motionEvent) {

return true;

}

});

就防止点击的时候textview消息不见的情况:

关键处理:

图层 android:layout_centerInParent=”true”

设置图层的触摸监听,即消耗掉点击relativeLayout.setOnTouchListener(new View.OnTouchListener() {

@Override

public boolean onTouch(View view, MotionEvent motionEvent) {

return true;

}

});

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android中实现透明Activity的点击穿透,可以通过以下步骤进行操作: 1. 在Manifest文件中声明透明的Activity: ```xml <activity android:name=".TransparentActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar"> </activity> ``` 2. 创建TransparentActivity类并继承自Activity,并在onCreate方法中设置Activity的透明属性: ```java public class TransparentActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 设置Activity透明 getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL); getWindow().setFlags(WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH, WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH); // 设置布局等其他操作 setContentView(R.layout.activity_transparent); } } ``` 3. 在TransparentActivity的布局文件中,可以添加其他View元素,以便显示其他内容。 ```xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="This is a transparent activity" android:textSize="24sp" android:layout_centerInParent="true"/> <!--其他View元素--> </RelativeLayout> ``` 通过以上步骤,我们可以创建一个透明的Activity,并且该Activity不会拦截点击事件,点击事件会传递到下方的View,从而实现了透明Activity的点击穿透效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值