1

我使用第 3 方组件 (AndroidSideMenu),它允许将整个活动拖到右侧以显示侧面菜单。

在布局的主(非菜单)部分,我有一个水平的 SeekBar。问题是当我开始拖动 SeekBar 按钮时,整个布局也随之拖动,因为 SlideHolder 组件也在响应拖动事件。

我不确定在 Android 中是如何管理触摸事件的,但是有没有办法在 SeekBar 处理这些事件后停止它们,以免它们到达父容器?因此,当您拖动 Seekbar 时,整个屏幕(父屏幕)必须保持不动,但是当您拖动到 SeekBar 之外时,它必须仍然按照侧菜单的要求工作吗?

谢谢

4

1 回答 1

1

在 SeekBar 的容器中,创建并应用(到 seekBar)一个 OnTouchListener,如下所示:

private final OnTouchListener onTouchListener = new OnTouchListener()
{
    public boolean onTouch(View v, MotionEvent event)
    {
        // If the View in question isn't a child of the seekBar and
        // isn't the seekBar itself, then return and don't consume the event.
        if ( (seekBar.findViewById(v.getId()) == null) &&
             (v.getId() != seekBar.getId()) )
        {
            return false;
        }

        // The View is either a child of the seekBar or is the seekBar itself,
        // so we pass the event along to the seekBar and return true, signifying
        // that the event has been consumed.
        seekBar.onTouchEvent(event);

        return true;
    }
}

试试这个,看看它是否有效;您可能需要为 if 语句创建更稳健的条件。

于 2013-07-24T03:18:24.097 回答