可以从其他视图(不同于我的seekBar)启动seekBar OnSeekBarChangeListener吗?

时间:2010-03-04 21:57:14

标签: android

我的布局上有一个SeekBar(seekBar1),高度很小(3dp)。由于它的高度很小,很难选择该视图,我想实现另一种方式来更新我的搜索视图的进度。为了做到这一点,我想在这样的事情:我必须在我的小seekBar1下放置一个更大且不可见的(android:background = "#00000000")seekBar(seekBar2),我为seekBar2设置onSeekBarChangeListener,每次当我触摸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 个答案:

答案 0 :(得分:5)

我遇到了完全相同的问题,并首先尝试了您的解决方案......但它确实可以做得更好:只需指定填充。使用填充(您可能只需要顶部和底部填充),触摸区域实际上是窗口小部件的大小,包括填充。因此,添加16像素的顶部和底部填充将为SeekBar的触摸边界添加32个像素。

希望有所帮助!