Android SeekBar';当不触摸时,s状态变为按下状态
这是may layout xml:Android SeekBar';当不触摸时,s状态变为按下状态,android,android-view,android-seekbar,Android,Android View,Android Seekbar,这是may layout xml: <RelativeLayout android:id="@+id/seek_bar_wrapper" android:layout_width="match_parent" android:layout_height="200dip"> <SeekBar android:id="@+id/seek_bar" android:layout_width="match_parent"
<RelativeLayout
android:id="@+id/seek_bar_wrapper"
android:layout_width="match_parent"
android:layout_height="200dip">
<SeekBar
android:id="@+id/seek_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_margin="20dip"
android:maxHeight="2dip"
android:minHeight="2dip"
android:progressDrawable="@drawable/drawable_seekbar_progress"
android:thumb="@drawable/drawable_seekbar_thumb" />
</RelativeLayout>
我将OnClickListener
设置为RelativeLayout
。奇怪的是,当我触摸RelativeLayout
时,SeekBar
的性能就像我按下它一样,当按下它的状态时,它的拇指变成了可绘制的。我想这是国家变得紧迫的时候了
这是一个bug吗?如何处理?
视图组在可单击时,似乎会将其状态传递给孩子,如本问题所示:
这可能是因为您将OnClickListener
设置为RelativeLayout
我的第一个倾向是在SeekBar
后面放置一个按钮,作为SeekBar
的兄弟,并将其用于OnClick操作
您还可以覆盖您的RelativeLayout
,在setPressed
根据文件:
在ViewGroup中处理触摸事件需要特别小心,因为它是
视图组中的子对象是不同视图的目标的情况很常见
触摸事件,而不是查看组本身。确保每个视图
正确接收针对它的触摸事件,覆盖
onInterceptTouchEvent()方法
所以这似乎是有意的行为。如果要避免此行为,您可能需要覆盖视图组(RelativeLayout
)或使用一个视图,该视图不是此事件的SeekBar
的父视图。刚刚设置
android:clickable="true"
android:focusable="true"
对于你的seekbar我看到,自从我发布了这个答案后,你还提出了3个问题。如果这有助于你,请接受答案,这样我们都可以得到代表,如果不让我知道你哪里有麻烦。这解决了我的问题,谢谢Vadim!!出于某种原因,这实际上是可行的