0

我有一个使用按钮单击事件打开的搜索栏。一旦用户停止跟踪进度,我需要在几秒钟后隐藏搜索栏。就像用户一段时间不使用搜索栏一样,搜索栏会自动隐藏。目前,我正在使用一个线程,一旦用户停止跟踪进度,它就会启动,然后它会休眠 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>
4

0 回答 0