SeekBar의 최대 및 최소 한계를 각각 50 및 20으로 설정하고 싶습니다.seekbar를 제한하는 방법
SeekBar에는 최대 값을 제공하는 직접 옵션이 있지만 0보다 최소값을 20으로 설정하는 방법은 무엇입니까?
SeekBar의 최대 및 최소 한계를 각각 50 및 20으로 설정하고 싶습니다.seekbar를 제한하는 방법
SeekBar에는 최대 값을 제공하는 직접 옵션이 있지만 0보다 최소값을 20으로 설정하는 방법은 무엇입니까?
can set only max value.
<SeekBar android:id="@+id/SeekBar01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:max="50"/>
에서
그리고, 는 사용자가 직접 검색 막대의 최소값을 설정할 수 없습니다.
SeekBar mSeekbar = (SeekBar) findViewById(R.id.SeekBar01);
mSeekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener()
{
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)
{
length_edit.setText(Integer.toString(progress + 20));
}
public void onStartTrackingTouch(SeekBar seekBar) {}
public void onStopTrackingTouch(SeekBar seekBar) {}
});
당신은 내가하고자하는 분으로 요약 할 수 분간 진행 상황을 볼 것처럼
- 귀하의 경우 20이 작업을 수행하는 가장 간단한 방법은 당신의 SeekBar
의 SeekBar.OnSeekBarChangeListener()
에서 그것을 제한하는 것입니다.
먼저 min 또는 default 값으로 필드를 만들어야합니다. Activity
의 Fragment
또는 onCreate
의 onCreateView()
에서
private int fillDefault;
: SeekBar
를 만들 때이 값을 설정
fillDefault = 20;
fillSeekBar.setProgress(fillDefault);
둘째, 대한 리스너를 구현합니다
fillSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
// Notification that the progress level has changed.
if (progress < fillDefault){
seekBar.setProgress(fillDefault); // magic solution, ha
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// Notification that the user has started a touch gesture.
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// Notification that the user has finished a touch gesture.
}
});
그것은 작동 . 간단하고 멋진 : D
이 솔루션은 패딩을 왼쪽으로 0dp로 설정하고 엄지 손가락이 탐색 바 끝과 겹치지 않도록하려는 경우에 이상적입니다. if (progress == 0) { seekBar.setProgress (1); } – PedroHidalgo
이 작업을 시도 할 수 있습니다 : 예를 들어
seekBar.setMax(max_value-min_value);
;
public static int LENGTH_MIN_VALUE = 20;
public static int LENGTH_MAX_VALUE = 50;
SeekBar seekBar = (SeekBar) findViewById(R.id.passwordSeekBar);
seekBar.setMax(LENGTH_MAX_VALUE);
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if(progress <= Constract.PASSWORD_LENGTH_MIN_VALUE){
progress = Constract.PASSWORD_LENGTH_MIN_VALUE + progress;
}
String numberAsString = String.valueOf(progress);
seekNumberView.setText(numberAsString);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {}
});
나는이 질문에 대답했습니다 : How to set seekbar min and max value.
간단한 수학을 사용하여 최소값, 최대 값 및 탐색 바의 단계까지 설정할 수 있습니다.
희망이 도움이됩니다.
입니다. ur 코드에 대해 감사합니다. 사실, textview를 사용하여 progrees 값을 설정하고 표시하고 있지 않습니다. 앱이 추락합니다. – iscavengers
죄송합니다, waz에두고, dats y 응답하지 않았다 .i upvoted 및 대답 aaccepeted 대답 ... enjoy – iscavengers
@ Paresh : seekbar에 최소 값을 설정하는 좋은 논리. 큰. . . –