如何使clickBar bubble onClick

时间:2017-10-22 18:55:43

标签: android addeventlistener android-seekbar

我希望每次用户触摸容器视图中的视图时,父视图都会重置超时。除了没有任何点击的seekBar View之外,它的效果很好。

更新

侦听器设置在父视图中,如下所示:

  this.setAddStatesFromChildren(true);//has no effect

  this.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            Log.d(TAG, "reset hide timer: ");
            handler.removeCallbacks(hideCallback);
            //playerControls is a compound view
            playerControls.setVisibility(VISIBLE);

            handler.postDelayed(hideCallback, 5000);
        }
    });

此代码捕获子视图中的所有事件,但无法从playerControls视图中的seekbar获取事件。该视图还有其他组件可以冒泡事件,而不是搜索栏。

父视图:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/bar">

<android.support.v7.widget.AppCompatImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/show"
    />

<..PlayerControls
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/player_controls"
    android:layout_below="@id/show"
    android:visibility="gone"
    />

</RelativeLayout>

和子视图(PlayerControls):

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/player_controls"
    >

    <android.support.v7.widget.AppCompatTextView
        android:id="@+id/duration"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />

    <android.support.v7.widget.AppCompatSeekBar
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:id="@+id/seek_bar"
        />

</RelativeLayout>

0 个答案:

没有答案