【发布时间】:2011-04-07 11:50:39
【问题描述】:
我的自定义列表视图中有一个搜索栏。现在我不希望该用户手动更改搜索栏进度。那我该怎么办?
如何取消用户与 SeekBar 交互的能力...
【问题讨论】:
我的自定义列表视图中有一个搜索栏。现在我不希望该用户手动更改搜索栏进度。那我该怎么办?
如何取消用户与 SeekBar 交互的能力...
【问题讨论】:
在您将所需的值设置为SeekBar 后,立即尝试使用setEnabled(false) 禁用搜索栏
【讨论】:
setVisibility 如果你想让它可见或不可见(消失),应该使用它。 setEnabled 不应允许用户与 SeekBar 进行交互
ccheneson's solution 有效,但它也会改变搜索栏的颜色。 如果您想使用搜索栏保留当前的亮绿色,请使用以下代码(也可以在 stackoverflow 上找到。谢谢!所以,只是参考)
private void makeSeekbarUnchanable(ViewHolder holder) {
holder.barRating.setOnSeekBarChangeListener( new OnSeekBarChangeListener() {
int originalProgress;
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
//Nothing here..
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
originalProgress = seekBar.getProgress();
}
@Override
public void onProgressChanged(SeekBar seekBar, int arg1, boolean fromUser) {
if( fromUser == true){
seekBar.setProgress( originalProgress);
}
}
});
}
【讨论】:
setEnabled(false) 有效,但不幸的是由于某种原因更改了自定义搜索栏背景。
这对我来说是个问题,所以我用了这种方式:
seekProgress.setOnTouchListener(new OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
return true;
}
});
【讨论】: