L. *_*ter 4 android android-view android-seekbar
这是可能的布局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"
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>
Run Code Online (Sandbox Code Playgroud)
我将设置OnClickListener为RelativeLayout。奇怪的是,当我触摸时RelativeLayout,SeekBar就像按动它一样,当按下状态时,它的拇指成为可绘制对象。我认为状态变得紧迫。
这是一个错误,如何解决?
刚设定
android:clickable="true"
android:focusable="true"
Run Code Online (Sandbox Code Playgroud)
到您的搜索栏
ViewGroups当它们可点击时,似乎将它们的状态传递给它们的孩子,如这个问题所示:View从其父级获取其可绘制状态(按下等...)
发生这种情况可能是因为您OnClickListener将RelativeLayout.
我的第一个倾向是将 放在Button后面SeekBar作为 的同级SeekBar,并将其用于您的 OnClick 操作。
您也可以覆盖您的RelativeLayout, 并且不执行任何操作setPressed
Android:即使指定了duplicateParentState,子元素也与其父元素共享按下状态
根据文档: http: //developer.android.com/training/gestures/viewgroup.html
处理 ViewGroup 中的触摸事件需要特别小心,因为 ViewGroup 的子级通常是与 ViewGroup 本身不同的触摸事件的目标。为了确保每个视图正确接收为其指定的触摸事件,请重写 onInterceptTouchEvent() 方法。
所以这似乎是有意的行为。如果您想避免这种行为,您似乎需要覆盖ViewGroup( RelativeLayout) 或使用View不是SeekBar此事件的父级的 。
| 归档时间: |
|
| 查看次数: |
784 次 |
| 最近记录: |