【问题标题】:User can not interact with the Seekbar用户无法与 Seekbar 交互
【发布时间】:2011-04-07 11:50:39
【问题描述】:

我的自定义列表视图中有一个搜索栏。现在我不希望该用户手动更改搜索栏进度。那我该怎么办?

如何取消用户与 SeekBar 交互的能力...

【问题讨论】:

    标签: android seekbar


    【解决方案1】:

    在您将所需的值设置为SeekBar 后,立即尝试使用setEnabled(false) 禁用搜索栏

    【讨论】:

    • 如果我设置为 false 那么它是否可见?
    • 是的,它应该是可见的。 setVisibility 如果你想让它可见或不可见(消失),应该使用它。 setEnabled 不应允许用户与 SeekBar 进行交互
    【解决方案2】:

    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);
                    }               
                }
            });
        }
    

    【讨论】:

      【解决方案3】:

      setEnabled(false) 有效,但不幸的是由于某种原因更改了自定义搜索栏背景。

      这对我来说是个问题,所以我用了这种方式:

      seekProgress.setOnTouchListener(new OnTouchListener()
          {
              @Override
              public boolean onTouch(View v, MotionEvent event)
              {
                  return true;
              }
          });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-11-06
        • 1970-01-01
        • 2017-08-20
        • 2019-03-14
        • 2020-10-29
        • 1970-01-01
        • 2013-05-19
        相关资源
        最近更新 更多