不可见视图上的OnTouchListener

Sou*_*ner 4 animation android invisible view listener

所以我想做的就是触摸隐藏隐形视图的屏幕的某个部分.

触摸后,视图应淡入.问题:当我触摸视图时,不会触发监听器.

我尝试过的事情:view.setImageAlpha(0),view.setAlpha(0),view.setVisibility(View.INVISIBLE)当我设置alpha = 1时,监听器工作正常.

提前致谢.

编辑: 感谢@Viswanath L提供了他在帖子中提到的第二个解决方案的出色解决方案.

我只是想给出一些代码示例,以防万一有人不知道它是如何工作的:

我想要的是:我想触摸屏幕的右上角,在这个位置,一个视图(myView)应该淡入.

   fadeInListener = new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_DOWN) {
                System.out.println("TRIGGERED");
//The screen size here is 1080x1920(vertical)
                if (event.getRawX() > 800 && event.getRawY() > 1640) {
                     final AlphaAnimation fadeIn = new AlphaAnimation(0, 1);
                     fadeIn.setDuration(500);
                     fadeIn.setFillAfter(true);
                     myView.startAnimation(fadeIn);
                }
            }
            return false;
        }
    };

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    layout.setOnTouchListener(fadeInListener);
}
Run Code Online (Sandbox Code Playgroud)

布局是:

this.layout = (RelativeLayout) findViewById(R.id.layout);
Run Code Online (Sandbox Code Playgroud)

myView应该放在右上角,这非常重要:

myView.setVisibility(View.Gone);
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.

Vis*_*nan 7

INVISBLE意味着您正在尝试将侦听器添加到不存在的视图中.您只能将侦听器添加到可见视图中.

替代方法

1)尝试制作一个可见但与背景颜色相同的虚拟视图.

2)尝试设置父级的监听器并检查位置(位置是否属于INVISIBLE视图).