在安卓上同时触摸两个视图

10

这是我的布局:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" >

    <SeekBar 
        android:id="@+id/seekBar1" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        />
    <TextView 
        android:id="@+id/textView1" 
        android:layout_width="fill_parent" 
        android:layout_height="60dip">
        </TextView>
    <SeekBar 
        android:id="@+id/seekBar2" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        />
</LinearLayout>

我想要能够同时使用两个SeekBar(作为滑块)并分别使用不同的手指来移动它们。

如何实现这一目标?


不是答案,但我想指出只需要定义一次模式。在您的XML中,您有三个xmlns:android声明。 - Kevin Coppock
我看到多点触控的一个大问题是,与为什么大多数Android设备上的双指乒乓游戏不起作用的原因相同,它们中的大多数只有有限的多点触控功能,可进行捏合缩放等操作,但不能进行其他操作...在开发HTC设备时必须记住这一点 --- 这也不是一个答案。视频演示:http://www.youtube.com/watch?v=7rOgFX1-EwE - Jaro
1
@kcoppock:哈哈,是的,谢谢指出这个问题。我先添加了SeekBar,然后复制了第二个并添加了一个LinearLayout,最终剩下了三个!正在编辑中... :P - neildeadman
哈哈,好的,明白了 :P 反正也不会有什么影响。 - Kevin Coppock
我不明白问题出在哪里,如果设备是多点触控,你可以简单地附加2个不同的监听器(或相同的监听器,在视图ID上进行切换)来处理对滑动条的触摸。 - StErMi
5个回答

3
这可能会有所帮助(在视图之间分割触摸)。这里提供了更多信息。

2

你需要自己处理触摸事件。使用多指针(例如多点触控)API 很容易。只需重写 onTouchEvent() 方法或在你的按钮上注册 OnTouchListener。

但请记住,多点触控仅在 Android 2.0 或更高版本中支持。

要了解更多信息,你可以参考这个已经被问过的问题


2

Fragment 中实例化您的视图即可。完成!

您可以通过同时滚动Honeycomb或Ice Cream Sandwich设备上Gmail应用程序中的电子邮件列表和电子邮件来查看此行为。


1

默认情况下可能不可能。您必须定义自己的视图类型。不要过多考虑事件如何处理。如果触摸事件来自父视图,则可以尝试覆盖LinearLayout并使其具有处理多点触控的能力。这样,您就可以添加尽可能多的滚动条,并且它将与屏幕可以处理的触摸点限制一起工作。


0

尝试将minimumSdk更改为'11',这对我有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接