无法通过Window.Callback接收运动事件

Zol*_*iBy 6 android android-support-library android-toolbar android-window

我的任务是通过良好的嵌入(库变体)接收android应用程序中的所有运动事件。我创建了Window.Callback包装器。

public class WindowCallback implements Window.Callback {

private final Window.Callback wrapper;

    public WindowCallback(Window.Callback callback) {        
        this.wrapper = callback;
    }

    @Override
    public boolean dispatchKeyEvent(KeyEvent event) {
         return wrapper.dispatchKeyEvent(event);
    }

    @Override
    public boolean dispatchKeyShortcutEvent(KeyEvent event) {
         return wrapper.dispatchKeyShortcutEvent(event);
    }

    @Override
    public boolean dispatchTouchEvent(MotionEvent event) {        
        return wrapper.dispatchTouchEvent(event);
    }

    // other methods omitted
}
Run Code Online (Sandbox Code Playgroud)

然后,在中实例化它Activity

final Window window = getWindow();
final Window.Callback windowCallback = window.getCallback();
final WindowCallback callbackWrapper = new WindowCallback(windowCallback);
window.setCallback(interceptCallback);
Run Code Online (Sandbox Code Playgroud)

但是当我Toolbar进入时Activity,此方法或方法将Toolbar捕获。框架中的代码片段:Window.CallbacksetActionBar(Toolbar)setSupportActionBar(Toolbar)Activity

if (toolbar != null) {
        final ToolbarActionBar tbab = new ToolbarActionBar(toolbar, getTitle(), this);
        mActionBar = tbab;
        mWindow.setCallback(tbab.getWrappedWindowCallback());
Run Code Online (Sandbox Code Playgroud)

ToolbarActionBar从支持库:

ToolbarActionBar(Toolbar toolbar, CharSequence title, Callback windowCallback) {
    this.mDecorToolbar = new ToolbarWidgetWrapper(toolbar, false);
    this.mWindowCallback = new ToolbarActionBar.ToolbarCallbackWrapper(windowCallback);
    this.mDecorToolbar.setWindowCallback(this.mWindowCallback);
    toolbar.setOnMenuItemClickListener(this.mMenuClicker);
    this.mDecorToolbar.setWindowTitle(title);
}
Run Code Online (Sandbox Code Playgroud)

问题是-如何在Toolbarcatch 时进行检查Window.Callback,但不创建基础活动并从中进行扩展。该检查应该执行的不是很频繁。(OnGlobalLayoutListener不是我们的情况)