2017-11-27 1 views
0

나는 seekbars 목록이 있습니다. 내가 원하는 건 seekbar의 한계를 설정하는 것입니다. 내가 seekBar.setMax(anyIntValue);을 사용하여이 작업을 수행했지만 전체 seekbar 값을 설정합니다. 하지만 내가 원하는 것은 예를 들어 사용자가 첫 번째 탐색 바를 90 %로 선택하고 두 번째 탐색 바를 10 %로 끌어서 놓아야합니다.seekbar의 끌기 범위로 한도 설정

holder.shelfShareSeekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
      @Override 
      public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 
       holder.percentTextView.setText(String.valueOf(progress)); 
      } 

      @Override 
      public void onStartTrackingTouch(SeekBar seekBar) { 
       remainingShelfShare = 100 - shelfShareSum; 
       seekBar.setMax(remainingShelfShare); 
      } 

      @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(); 
       } 

      } 
     }); 
+0

그런 경우 탐색 모음을 사용자 지정해야합니다. – ADM

+0

좀 더 명확히 할 수 있습니까? @ADM 또는 예제를 게시 할 수 있습니까? –

답변

0

여기에 나를 위해 잘 작동 내 코드입니다 :

이 내 코드입니다. 모두 SeekBar를

//seekBar1 
seekBar1.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
     @Override 
     public void onProgressChanged(SeekBar seekBar, int i, boolean b) { 

     } 

     @Override 
     public void onStartTrackingTouch(SeekBar seekBar) { 

     } 

     @Override 
     public void onStopTrackingTouch(SeekBar seekBar) { 

      if(seekBar2.getProgress()>0){ 
       seekBar2.setProgress(0); 
       seekBar2.setFocusable(false); 
      } 
     } 
    }); 

//seekBar2 


seekBar2.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
     @Override 
     public void onProgressChanged(SeekBar seekBar, int i, boolean b) { 

     } 

     @Override 
     public void onStartTrackingTouch(SeekBar seekBar) { 

     } 

     @Override 
     public void onStopTrackingTouch(SeekBar seekBar) { 

     } 
    }); 

seekBar1 = (SeekBar)findViewById(R.id.seekBar1); 
seekBar2 = (SeekBar)findViewById(R.id.seekBar2); 

설정 seekBarChangeListener 지금 seekBar2

이 코드 도움이 될 migh 희망
seekBar2.setOnTouchListener(new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(View view, MotionEvent motionEvent) { 
      int firstProgress = (100 - seekBar1.getProgress()); //100 max range of seekBar 
      int secondProgress = seekBar2.getProgress(); 
      return secondProgress >= firstProgress; 
     } 
    }); 

에 정지 추적 터치 이벤트에 대한 seekBar2에 setOnTouchListener를 추가합니다.

관련 문제