0

シークバーを使用しています。親指を動かすだけでコントロールしたい。

プログレスドローアブルのクリックを無効にするにはどうすればよいですか?

試してみandroid:clickable="false"ましたが、うまくいきませんでした。

my seek XML のバーコード

      <SeekBar
        android:id="@+id/myseek"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:maxHeight="500dp"
        android:minHeight="50dp"
        android:paddingBottom="30dp"
        android:progressDrawable="@drawable/progress_left"
        android:thumb="@drawable/left_unlocker_bkg" >
    </SeekBar>

onSeekChangedListner の私の Seekbar コード

unlockSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
                    @Override
                    public void onStopTrackingTouch(SeekBar seekBar) {
                        toastText.setVisibility(View.GONE);
                        seekBar.setProgress(0);
                    }

                    @Override
                    public void onStartTrackingTouch(SeekBar seekBar) {

                        if (seekBar.getProgress() < 10) {
                            seekBar.setProgress(0);
                        }
                        toastText.setVisibility(View.VISIBLE);
                        toastText.setText("Slide to Unclock");
                    }

                    @Override
                    public void onProgressChanged(SeekBar seekBar,
                            int progress, boolean fromUser) {

                        if (progress == 100) {
                            Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
                            v.vibrate(100);
                            finish();
                        } 
                    }
                });

現在、ユーザーは進行状況をクリックして親指を動かすことができます。無効にしたいです。助けてください

4

2 に答える 2

5

android:enabled="false"を使用できますが、[シークバーを暗くする] 無効化効果が表示されます。

したがって、サム アクティビティに応答せずにイネーブル シークバーを表示する場合は、以下に示すように、true を返すタッチ イベント ハンドラを実装します。

seekBar.setOnTouchListener(new OnTouchListener(){
  @Override
  public boolean onTouch(View v, MotionEvent event) {
    return true;
 }
});
于 2015-01-05T10:04:14.687 に答える
0

シークバーのタッチ イベントを処理する必要があります。以下のリンクが参考になると思います。

Android シークバー ソリューション

于 2013-10-30T10:12:31.703 に答える