Сброс панели поиска события Drage с 0

Я реализовал список поисковых панелей. В соответствии с моей функциональностью, я хочу, чтобы сумма всей панели поиска не превышала 100%, например, если я перетаскиваю первую панель поиска на 60%, следующая не будет превышать 40%.

Я заставил это работать, но всякий раз, когда я перетаскиваю первый на некоторое значение (скажем, 60 %), а затем второй, скажем, 40%, а затем снова, когда я пытаюсь перетащить первый, чтобы уменьшить его значение, сбрасывается до 0. В чем проблема с моим кодом?

holder.shelfShareSeekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                remainingShelfShare = 100 - shelfShareSum;
                holder.percentTextView.setText(String.valueOf(progress));
            productShelfShareMap.get(((Products)list.get(position)).getProductID());
                if(progress > remainingShelfShare){
                 holder.shelfShareSeekbar.setProgress(remainingShelfShare);
                }
              }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {                 
             }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                list.get(position).setSetSlider(seekBar.getProgress());
                shelfShareSum = 0;

                productShelfShareMap.put(((Products)list.get(position)).getProductID(), Integer.parseInt(holder.percentTextView.getText().toString()));

                for (HashMap.Entry<Integer, Integer> entry : productShelfShareMap.entrySet()){
                    shelfShareSum += entry.getValue();
                }             
            }
        });

1 ответ

Использование SetMax функция seekbar установить значение в SecondSeekbar,

int step = 1; // set it accordingly if you want data in 3.1,3.2 range
int max = 100;
int min; // if you want to set min criteria too.

shelfShareSeekbar.setOnSeekBarChangeListener(
    new OnSeekBarChangeListener()
    {
        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {}

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {}

        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, 
            boolean fromUser) 
        {
            // Ex :
            // And finally set value of next seekbar based on firstone


 secondseekbar.setMax((max - progress) / step);

        }
    }
);
Другие вопросы по тегам