Проблема с SeekBar onProgressChanged()

У меня есть некоторые конкретные требования. У меня есть панель поиска. Теперь предположим, что прогресс равен 0, поэтому, когда я увеличу полосу поиска, она должна перейти прямо к 50, а когда я увеличу полосу поиска, она должна сразу перейти к 100. Это работает правильно. Но теперь, когда я уменьшаю прогресс, он должен снова вернуться к 50, а когда я снова уменьшаю, он снова должен вернуться к 0. Итак, последние два шага не выполняются.

@Override
        public void onProgressChanged(SeekBar seekBar, int progress,
                boolean fromUser) {
            progress_value.setText(progress + "");
            if (progress > 1 && progress <= 50) {
                seek_bar.setProgress(50);
            }
            //seekBar.setSaveEnabled(true);
            if (progress ==100 ) {
                if(progress <100)
                seek_bar.setProgress(50);
            }

            if (progress > 50 && progress < 100) {
                seek_bar.setProgress(100);
            }
        }

person Amit Jayaswal    schedule 25.12.2014    source источник
comment
возможный дубликат изменения значений шага на панели поиска?   -  person waki    schedule 25.12.2014
comment
Почему вы не пытаетесь указать прогресс из xml как: ‹ProgressBar android:layout_width=wrap_content android:layout_height=wrap_content android:progress=50 android:max=100 /›   -  person Shankar    schedule 25.12.2014


Ответы (1)


Внесите некоторые изменения в логику, например,

Boolean flag = true, flag1 = true;
seek_bar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub

            int a = seekBar.getProgress();

            if (flag) {
                if (a <= 50 && a > 1) {
                    seek_bar.setProgress(50);
                    flag = false;
                }
            } else {
                if (a <= 50 && a > 1) {
                    seek_bar.setProgress(00);
                    flag = true;
                }
            }
            if (flag1) {
                if (a >= 50 && a < 100) {
                    seek_bar.setProgress(100);
                    flag1 = false;
                }
            } else {
                if (a >= 50 && a < 100) {
                    seek_bar.setProgress(50);
                    flag1 = true;
                }
            }

        }
person Ajit Sharma    schedule 25.12.2014