Можно ли запустить seekBar OnSeekBarChangeListener из другого представления (отличного от моего seekBar)? - PullRequest
2 голосов
/ 05 марта 2010

У меня есть SeekBar (seekBar1) на моем макете с небольшой высотой (3dp). Из-за его небольшой высоты трудно выбрать этот вид, и я хочу реализовать другой способ обновления прогресса для моего вида поиска. Чтобы сделать это, я думаю о чем-то подобном: я должен поместить другой больший и невидимый (android:background = "#00000000") seekBar (seekBar2) под мой маленький seekBar1, я устанавливаю onSeekBarChangeListener для seekBar2 и каждый раз, когда я касаюсь seekBar2 и onSeekBarChange() называется, я буду обновлять прогресс для seekBar1.

Я хочу спросить, возможно ли сделать это лучше?

Это мой код:

seekBarSecond.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

   @Override
   public void onStopTrackingTouch(SeekBar seekBar) {    try {
    musicService.seekTo(seekBar.getProgress());
                                seekBar.setProgress(seekBarSecond.getProgress());

   } catch (RemoteException e) {
    e.printStackTrace();
   }

   }

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

   }

   @Override
   public void onProgressChanged(SeekBar seekBar, int progress,
     boolean fromUser) {


   }
  });

  seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){   
   public void onStopTrackingTouch(SeekBar seekBar) {

    try {
     musicService.seekTo(seekBar.getProgress());
    } catch (RemoteException e) {
     e.printStackTrace();
    }
   }

   public void onStartTrackingTouch(SeekBar seekBar){

   }

   public void onProgressChanged(SeekBar seekBar, int progress,
     boolean fromUser){

   }
  });

Спасибо!

1 Ответ

5 голосов
/ 15 сентября 2010

У меня была точно такая же проблема, и я сначала попробовал ваше решение ... оно работает, но вы действительно можете добиться большего: просто укажите заполнение. С отступом (вам, вероятно, понадобится только верхний и нижний отступы), сенсорная зона фактически соответствует размеру виджета, включая отступы. Таким образом, добавление 16 пикселей верхнего и нижнего отступов добавит 32 пикселя к границам касания SeekBar.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...