【发布时间】:2016-04-13 22:30:05
【问题描述】:
我试图从一个名为 AbsSeekBar 的类中重写一些方法。然而,Android Studio 用标题中提到的消息强调 super.methodname() 和 @Override 用“方法不会覆盖它的超类中的方法”,即使方法就在那里。代码示例:
子类:
import android.widget.AbsSeekBar;
public class VerticalSeekBar extends AbsSeekBar {
// Constructors, work fine
...
@Override
void onProgressRefresh(float scale, boolean fromUser, int progress) {
super.onProgressRefresh(scale, fromUser, progress);
if (mOnSeekBarChangeListener != null) {
mOnSeekBarChangeListener.onProgressChanged(this, progress, fromUser);
}
}
...
}
超类的代码:
public abstract class AbsSeekBar extends ProgressBar {
// Some methods
...
@Override
void onProgressRefresh(float scale, boolean fromUser, int progress) {
super.onProgressRefresh(scale, fromUser, progress);
final Drawable thumb = mThumb;
if (thumb != null) {
setThumbPos(getWidth(), thumb, scale, Integer.MIN_VALUE);
// Since we draw translated, the drawable's bounds that it signals
// for invalidation won't be the actual bounds we want invalidated,
// so just invalidate this whole view.
invalidate();
}
...
}
【问题讨论】:
-
问题解决了吗?
-
@SrikarReddy 不幸的是没有。你有同样的问题吗?
-
是的,onProgressRefresh 也有同样的问题。不知道为什么会发生以及如何解决它。
标签: java android inheritance widget