代码类似于这样:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<SurfaceView
android:id="@+id/media_page_surface"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true" />
<SeekBar
android:id="@+id/media_page_seek_bar"
android:layout_width="match_parent"
android:maxHeight="3dip"
android:layout_height="wrap_content"
android:alignParentBottom="true"
android:progressDrawable="@drawable/drawable_media_page_seek_bg"
android:thumb="@drawable/drawable_media_page_seek_thumb" />
</RelativeLayout>
我是在最外层设置了点击事件setOnClickListener(listener),但是设置了之后当手指滑到这个控件的其他地方时,这个SeekBar会变成按下的颜色,但是其位置不会移动?这个是什么情况,要怎么才能解决?
你想达到的效果是什么?还是你碰到了这个问题想深究其原因?如果你想监听子View的点击事件,就应该对子View设置监听而不是对ViewGroup进行监听,点击事件是独立事件,无法再进行分发。至于点击ViewGroup后SeekBar变色了是因为点击事件同时是会触发触摸事件,触摸事件是默认分发的,触摸事件带来焦点,有了焦点就有了变色。一个题外话,你的相对布局写的不严谨,layout_wight这种线性布局才能生效的属性就不应该出现在相对布局中