2016-08-11 5 views
8

나는 seekbar의 범위를 설정하기 위해 2 개의 사용자 정의 엄지 (Max와 Min)를 가진 custom Range Seek Bar을 가지고있다. 모든 것이 정상적으로 작동하지만 내게 필요한 옵션 모드로 들어가면 장치 기본 동작 인 범위 찾기 바에 포커스가 제공됩니다. 내가 지금까지 시도 무엇내게 필요한 옵션 모드에서 Range Seek Bar에 대한 Thumb에 포커스를 설정하는 방법?

: SeekBar를 클래스의 엄지보기를 얻을 포커스가 SeekBar를에 와서 가정 할 때 접근성을 강요하는 시도

  • .
  • 은 SeekBar를

의 엄지 손가락에 초점을 강제로 thumb.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED);을 사용하고 또한

thumb.setFocusable(true); 
thumb.setFocusableInTouchMode(true); 

하지만 긍정적 인 결과 지금까지.

내가 원하는 것은 Seekbar 자체 대신 Thumb에 집중하는 것입니다.

제안 사항이 도움이 될 것입니다.

답변

0
int preMin = -1; 
int preMax = -1; 

final RangeSeekBar<Integer> seekBar = new RangeSeekBar<Integer>(this); 
     seekBar.setRangeValues(0, 100); 
//setNotifyWhileDragging is important method to achive this functionality 
     seekBar.setNotifyWhileDragging(true); 

     seekBar.setOnRangeSeekBarChangeListener(new RangeSeekBar.OnRangeSeekBarChangeListener<Integer>() { 
      @Override 
      public void onRangeSeekBarValuesChanged(RangeSeekBar<?> bar, Integer minValue, Integer maxValue) { 
       int diff = maxValue - minValue; 
       if (diff == 39 || diff < 40) { 
        bar.setEnabled(false); 
        if(minValue != preMin){ 
         seekBar.setSelectedMinValue(preMin); 
        } 
        else if(maxValue != preMax){ 
         seekBar.setSelectedMaxValue(preMax); 
        } 
        AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this); 
        alert.setNegativeButton(getResources().getString(android.R.string.ok), new DialogInterface.OnClickListener() { 
         @Override 
         public void onClick(DialogInterface dialog, int which) { 
          dialog.dismiss(); 
          seekBar.setEnabled(true); 
         } 
        }); 
        alert.setCancelable(false); 
        alert.setMessage(Html.fromHtml("You cant move below 40!!")).show(); 

       } else { 
        preM`enter code here`in = minValue; 
        preMax = maxValue; 
       } 
      } 
     });