作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用第 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/
我使用第 3 方组件 (AndroidSideMenu),它允许将整个 Activity 拖动到右侧以显示侧边菜单。 在布局的主要(非菜单)部分,我有一个水平的 SeekBar。问题是,当我开始拖动
我是一名优秀的程序员,十分优秀!