我的布局上有一个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){
}
});
谢谢!
答案 0 :(得分:5)
我遇到了完全相同的问题,并首先尝试了您的解决方案......但它确实可以做得更好:只需指定填充。使用填充(您可能只需要顶部和底部填充),触摸区域实际上是窗口小部件的大小,包括填充。因此,添加16像素的顶部和底部填充将为SeekBar的触摸边界添加32个像素。
希望有所帮助!