【问题标题】:Catch onTouch or onClick event from View added by WindowManager in Android从 Android 中的 WindowManager 添加的 View 中捕获 onTouch 或 onClick 事件
【发布时间】:2013-04-10 02:11:11
【问题描述】:

我被一个问题困扰了几天,我的 Google 搜索开始没有可能的解决方案。我正在尝试创建一个添加 View 并接收 onTouch 事件或 onClick 事件的类,就像 UndoBar 库一样。问题是永远不会调用 onTouch/onClick 事件,除非我将视图添加到 ViewGroup 而不是 WindowManager。下面是我的非工作代码:

    final LayoutInflater mLayoutInflater = (LayoutInflater) 
            context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    final View mView = mLayoutInflater
            .inflate(R.layout.test, null);


    final TextView clickTextView = (TextView) 
            mView.findViewById(R.id.clickTextView);  


    WindowManager mWindowManager = (WindowManager)
            context.getSystemService(Context.WINDOW_SERVICE);

    final WindowManager.LayoutParams params = new WindowManager.LayoutParams();

    params.height = WindowManager.LayoutParams.WRAP_CONTENT;
    params.width = WindowManager.LayoutParams.WRAP_CONTENT;

    params.flags = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;

    params.format = PixelFormat.TRANSLUCENT;      
    params.type = WindowManager.LayoutParams.TYPE_TOAST;

    mWindowManager.addView(mView, params);

    clickTextView.setOnTouchListener(new OnTouchListener() 
    {

        @Override
        public boolean onTouch(View v, MotionEvent event) 
        {

            Log.i("onTouch", "onTouch has been called");

            return false;

        }
    });

}

请注意:这里传递的Context是一个Activity Context。

为了使这段代码正常工作,我需要获取 Activity 的根布局并将视图添加到其中。我的问题,可能是一个菜鸟问题,为什么我不能获得添加到 WindowManager 的 View 事件的 onTouch/onClick ?

感谢您的帮助。

【问题讨论】:

    标签: android onclick touch-event android-windowmanager


    【解决方案1】:

    这是使这项工作的代码,但仍然没有找到对我的问题的解释。

        final View mView = mLayoutInflater
                .inflate(R.layout.test, activityViewGroup, false);
    
        activityViewGroup.addView(mView);
    

    【讨论】:

      猜你喜欢
      • 2012-03-10
      • 1970-01-01
      • 2011-08-18
      • 1970-01-01
      • 2011-06-11
      • 1970-01-01
      • 1970-01-01
      • 2011-08-14
      • 1970-01-01
      相关资源
      最近更新 更多