2010-03-04 42 views
2

我有一個SeekBar(seekBar1)我的佈局與一個小高度(3dp)。由於它的高度很小,很難選擇該視圖,並且我想實施其他方式來更新我尋求視圖的進度。爲了做到這一點,我認爲這樣的事情:我必須在我的小seekBar1下放置其他更大和不可見的(android:background = "#00000000")seekBar(seekBar2),我將seekDar2設置爲onSeekBarChangeListener,並且每當我觸摸seekBar2和onSeekBarChange()時被調用我將更新seekBar1的進度。是否有可能從其他視圖(不同於我的seekBar)開始seekBar OnSeekBarChangeListener?

我想問一下,如果能夠以更好的方式做到這一點?

這是我的代碼:

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){ 

    } 
    }); 

謝謝!

回答

5

我有完全相同的問題,並先嘗試瞭解決方案......它的工作原理,但您確實可以做得更好:只需指定填充即可。使用填充(您可能只需要頂部和底部填充),觸摸區域實際上是小部件的大小,包括填充。因此,添加16像素的頂部和底部填充將爲SeekBar的觸摸邊界添加32像素。

希望有幫助!