gpt4 book ai didi

android - 可拖动 View 内的 SeekBar (SlideHolder)

转载 作者:行者123 更新时间:2023-11-30 03:31:47 32 4
gpt4 key购买 nike

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

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

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

谢谢

最佳答案

在 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 语句创建更可靠的条件。

关于android - 可拖动 View 内的 SeekBar (SlideHolder),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17332715/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com