gpt4 book ai didi

Android自动水平滚动TextView

转载 作者:IT王子 更新时间:2023-10-28 23:40:41 25 4
gpt4 key购买 nike

我正在尝试实现一个自动滚动的单行 TextView 。但不幸的是,我无法让它发挥作用。 AutoScrollTextView 在 LinearLayout 中声明(宽度和高度 = fill_parent)。该类基本上使用一个处理程序,该处理程序调用自身以滚动给定数量。我已经简化了代码,只显示一个应该每秒滚动 5 个像素的 TextView 。

日志输出正确,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);
}
};
}

最佳答案

如果您不需要对 TextView 进行子类化,您可以在布局文件中尝试:

    <TextView
android:text="Single-line text view that scrolls automatically if the text is too long to fit in the widget"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit ="marquee_forever"
android:focusable="true"
android:focusableInTouchMode="true"
android:scrollHorizontally="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

另外,在您的代码中使用以下内容:

findViewById(R.id.serviceColorCode).setSelected(true);

[根据评论编辑答案]

关于Android自动水平滚动TextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5472362/

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