我有一个使用按钮单击事件打开的搜索栏。一旦用户停止跟踪进度,我需要在几秒钟后隐藏搜索栏。就像用户一段时间不使用搜索栏一样,搜索栏会自动隐藏。目前,我正在使用一个线程,一旦用户停止跟踪进度,它就会启动,然后它会休眠 10 秒并隐藏搜索栏。问题是,一旦线程启动,用户无法更改进度,直到线程活动完成。有没有其他方法可以实现这个功能?任何帮助表示赞赏。以下是我的代码。
按钮点击:
relLayout.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
viewAnimatorSeekbar.setVisibility(View.VISIBLE);
seekBarPageIndicator.setVisibility(View.VISIBLE);
viewAnimatorSeekbar.showNext();
return true;
}
});
寻求栏值变化监听器:
seekBarPageIndicator.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
Toast.makeText(getContext(), Integer.toString(progress), Toast.LENGTH_SHORT).show();
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
try{
Thread.sleep(10000);
viewAnimatorSeekbar.showNext();
seekBarPageIndicator.setVisibility(View.GONE);
viewAnimatorSeekbar.setVisibility(View.GONE);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
布局如下。
<ViewAnimator
android:id="@+id/viewAnimatorSeekbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
android:layout_below="@id/rel_layout"
android:layout_marginTop="20dp">
<SeekBar
android:id="@+id/seekbar_page_indicator"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
android:progressDrawable="@drawable/grey_scrubber_progress"
android:thumb="@drawable/grey_scrubber_control"/>
</ViewAnimator>