ユーザーが進捗状況(10)より下で開始しない限り、シークバーの進行を停止しようとしているため、活性化。しかし、スライドバーはまだ)(100を進行するためにどこにでも(進捗(0)アップから移動することができ、私はこれまでのところ、これを試してみたし、それが仕事だろうように見えます。AndroidのカスタムSeekBar、起動時にタッチしたときにのみ進行を許可する
sb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
private Boolean isInRange = true;
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
if (seekBar.getProgress() > 95) {
((MainActivity)getActivity()).currentOrder = null;
((MainActivity)getActivity()).showMain();
} else {
seekBar.setProgress(0);
isInRange = false;
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
if (seekBar.getProgress() < 10) {
isInRange = true;
} else {
seekBar.setProgress(0);
isInRange = false;
}
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if(!isInRange) {
seekBar.setProgress(0);
}
}
});// Set on seek bar change listener
をあなたが必要とするだけの場合にはそれは、ここでseekbarsコンテナのXMLコードです:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorFocus"
android:layout_alignParentBottom="true"
android:orientation="vertical">
<LinearLayout
android:id="@+id/seperator_bottom"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@android:color/darker_gray"
android:orientation="horizontal" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/btn_delivery_disabled"
android:padding="16dp"
android:layout_margin="16dp">
<SeekBar
android:id="@+id/seek"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:clickable="false"
android:max="100"
android:progressDrawable="@android:color/transparent"
android:thumb="@mipmap/ic_slide" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/delivered"
android:textAppearance="@android:style/TextAppearance.DeviceDefault.Large"
android:gravity="center"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"
android:id="@+id/textView" />
</RelativeLayout>
</LinearLayout>
「それはうまくいくだろうが、スライドバーはどこからでも移動できる」とはどういう意味ですか?どの部分がうまくいったのですか? – bc004346
基本的には、ユーザーが進捗状況(10)の下にあるスライダーに触れ始めると、スライドすることが想定されています。その瞬間に動作しますが、次に指をスライドさせると、スライダーがタッチが現在動いている場所に移動します。境界内で開始されない限り動かないようにしたい(<10) – Zachary