gpt4 book ai didi

android - 为什么不调用进度更改?

转载 作者:行者123 更新时间:2023-11-29 00:05:30 25 4
gpt4 key购买 nike

我正在扩展 SeekBar:

public class NutritionalSeekBar extends SeekBar implements SeekBar.OnSeekBarChangeListener {

public NutritionalSeekBar(Context context) {
super(context);
}

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

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

@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public NutritionalSeekBar(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}

@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
progress = (Math.round(progress / 50)) * 50;
seekBar.setProgress(progress);
}

@Override
public void onStartTrackingTouch(SeekBar seekBar) {

}

@Override
public void onStopTrackingTouch(SeekBar seekBar) {

}
}

然后在xml中使用:

<com.package.views.NutritionalSeekBar
android:id="@+id/seek_bar_carbos"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:progress="50" />

为什么永远不会调用进度更改的回调?

最佳答案

如果您希望 NutritionalSeekBar 实例成为它自己的 OnSeekBarChangeListener,您必须这样设置它。您还应该链接您的构造函数。例如:

public class NutritionalSeekBar extends SeekBar implements SeekBar.OnSeekBarChangeListener {

public NutritionalSeekBar(Context context) {
this(context, null);
}

public NutritionalSeekBar(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}

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

setOnSeekBarChangeListener(this);
}
...

}

关于android - 为什么不调用进度更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34084074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com