一个 seekBar 的移动会影响其他 seekBar

movement of one seekBar will affect other seekBar

我的应用程序屏幕中有 5 个 seekBar 小部件和一个 "total budget" 用户可以初始化的 editText 小部件。 我想实现移动一个 seekBar 影响另一个 seekBar 向相反方向移动的效果,受 "total budget" 限制。 我怎样才能达到这种效果,是否可以让 seekBars 同时移动?

您可以为此使用 SeekBar.OnSeekBarChangeListener。 对于每个搜索栏,您需要设置此侦听器并从类似于此的 onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) 方法更新其他搜索栏的值:

    seekBar1.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            if(fromUser){
                // update other seekbars' value
                seekBar2.setProgress();
                seekBar3.setProgress();
                seekBar4.setProgress();
            }
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {

        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {

        }
    });

    seekBar2.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            if(fromUser){
                // update other seekbars' value
                seekBar1.setProgress();
                seekBar3.setProgress();
                seekBar4.setProgress();
            }
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {

        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {

        }
    });