如何定义SeekBar的最小值?这是在XML布局中完成还是需要以编程方式定义?
基本上,我需要将我的最小值从0更改为0.2。
基本上,我需要将我的最小值从0更改为0.2。
我终于找到了一种设置 seekBar
最小值 的方法,只需要像这样设置你的 setOnSeekBarChangeListener
:
int minimumValue = 10; // your minimum value
seekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
// you can set progress value on TextView as usual
txtProgress.setText(String.valueOf(progress));
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
if(seekBar.getProgress() < minimumValue)
seekBar.setProgress(minimumValue);
}
});
如果您正在使用com.android.support:preference-v7
,则SeekBarPreference
已经有一个setMin(int)
方法。
只需在PreferenceFragmentCompat
的onCreatePreferences()
中调用即可。
XML值仍将在API < 26上被忽略,但以编程方式设置可以正常工作。
这段代码对我来说很好用!!!
SeekBar seekBar = (SeekBar)findViewById(R.id.seekBar);
seekBar.setMax(100);
seekBar.setProgress(40);
seekBar.setOnSeekBarChangeListener(seekBarChangeListener);
SeekBar.OnSeekBarChangeListener seekBarChangeListener = new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean b) {
if(progress <= 40){
seekBar.setProgress(40);
}
if(progress >= 40) {
pgr_status.setText(String.valueOf(progress));
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
};