首页 > 解决方案 > 实现 OnSeekBarChangeListener 的自定义 Seekbar 类,从未调用过 onProgressChanged

问题描述

我有一个自定义的 Seekbar 类,它实现了 OnSeekBarChangeListener,但该方法onProgressChanged从未被调用,我不确定为什么。

public class SeekbarSphereNodeRotator extends AppCompatSeekBar implements AppCompatSeekBar.OnSeekBarChangeListener {

    private static final String TAG = "SeekbarSphereNodeRotato";

   
    public SeekbarSphereNodeRotator(Context context) {
        super(context);
        //Gets called
        Log.d(TAG, "SeekbarSphereNodeRotator: " + mCurrentRotatedAngle);
    }

    public SeekbarSphereNodeRotator(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public SeekbarSphereNodeRotator(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

        //Never called
        Log.d(TAG, "onProgressChanged: " + progress);
        
        
    }

    @Override
    public void onStartTrackingTouch(SeekBar seekBar) {

    }

    @Override
    public void onStopTrackingTouch(SeekBar seekBar) {

    }
}

调用了构造函数,但是onProgressChanged当我移动搜索栏拇指时,该方法永远不会出现。我做错了什么?

mSeekbarImageRotater = new SeekbarSphereNodeRotator(MainActivity.this);

编辑:

我试过添加setOnSeekBarChangeListener(this);构造函数,但这也不起作用。

标签: androidandroid-seekbar

解决方案


我不得不设置

setOnSeekBarChangeListener(this);

public SeekbarSphereNodeRotator(Context context, AttributeSet attrs) {
   uper(context, attrs);
}

让听众工作。


推荐阅读