我正在尝试实现一个单行文本视图,使其能够自动滚动。但是我不幸无法让它正常工作。AutoScrollTextView声明在LinearLayout(宽度和高度=fill_parent)内部。该类基本上使用Handler调用自身以按给定量滚动。我已经简化了代码,只显示每秒应滚动5个像素的文本视图。
日志输出是正确的,getScrollX()方法返回适当的scrollX位置。
如果我不调用requestLayout(),则什么也不会绘制。invalidate()没有效果。
有人有线索吗?
日志输出是正确的,getScrollX()方法返回适当的scrollX位置。
如果我不调用requestLayout(),则什么也不会绘制。invalidate()没有效果。
有人有线索吗?
public class AutoScrollTextView extends TextView {
public AutoScrollTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
setSingleLine();
setEllipsize(null);
setText("Single-line text view that scrolls automatically if the text is too long to fit in the widget");
}
// begin to scroll the text from the original position
public void startScrolling() {
scrollHandler.sendEmptyMessage(0);
}
private Handler scrollHandler = new Handler() {
private static final int REFRESH_INTERVAL = 1000;
public void handleMessage(Message msg) {
scrollBy(5, 0);
requestLayout();
Log.debug("Scrolled to " + getScrollX() + " px");
sendEmptyMessageDelayed(0, REFRESH_INTERVAL);
}
};
}