用户无法与 Seekbar 交互

发布于 2024-10-31 12:41:15 字数 88 浏览 1 评论 0原文

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

如何删除用户与 SeekBar 交互的能力...

I have one seekbar in my custom listview . Now i dont want that user change the seekbar progress manually. so what i have to do ?

how to remove the ability for a user to interact with the SeekBar...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

Saygoodbye 2024-11-07 12:41:15

在为 SeekBar 设置所需的值后,尝试立即使用 setEnabled(false) 禁用 Seekbar

Try disabling the Seekbar with setEnabled(false) right after you have set the value you want to the SeekBar

坏尐絯℡ 2024-11-07 12:41:15

ccheneson 的解决方案有效,但它也会更改搜索栏的颜色。
如果你想用搜索栏保留当前的亮绿色,请使用以下代码(也可以在 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);
                }               
            }
        });
    }

ccheneson's solution works, but it also changes the color of the seekbar.
if you want to leave your current bright green with the seekbar, use the following code (also found here on stackoverflow. thanks! so, just refering)

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);
                }               
            }
        });
    }
一梦浮鱼 2024-11-07 12:41:15

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

这对我来说是一个问题,所以我使用了这样的方法:

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

setEnabled(false) works, but unfortunately change custom seekbar background for some reason.

It was a problem for me, so I used this way:

seekProgress.setOnTouchListener(new OnTouchListener()
    {
        @Override
        public boolean onTouch(View v, MotionEvent event)
        {
            return true;
        }
    });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文