问题描述
- TextView 文字水平滚动怎么不动
- 按照网上的一模一样写的
xml文件:android:id=""@+id/showSongName"" android:layout_width=""0dip"" android:layout_height=""wrap_content"" android:layout_weight=""0.06"" android:textColor=""#000000"" android:textSize=""16sp"" android:focusable=""true"" android:ellipsize=""marquee"" android:singleLine=""true"" android:marqueeRepeatLimit=""marquee_forever"" android:focusableInTouchMode=""true"" android:scrollHorizontally=""true""javapublic class Marquee_TextView extends TextView{ public Marquee_TextView(Context context) { super(context); } public Marquee_TextView(Context context AttributeSet attrs) { super(context attrs); } public Marquee_TextView(Context context AttributeSet attrs int defStyle) { super(context attrs defStyle); } @Override public boolean isFocused() { return true; }}
哪里错了吗??怎么文字没动呢?郁闷,求解答啊
解决方案
我自己找到原因了,原来是textview的宽度要设置一定的值,要不然字数比宽度少,是没有效果的,所以weight不能用,并且把width设置称100dip就可以了,给后面的人一个参考哦
解决方案二:
后来又出现了问题,界面的一个按钮事件是打开一个小的界面,然后问题就来了,按钮事件响应后,文字又不滚动了,这时,就在Marquee_TextView 中重写方法onFocusChanged和onWindowFocusChanged,添加的代码如下:
@Override
protected void onFocusChanged(boolean focused int direction
Rect previouslyFocusedRect) {
if(focused)
{
super.onFocusChanged(focused direction previouslyFocusedRect);
}
}
@Overridepublic void onWindowFocusChanged(boolean hasWindowFocus) { if(hasWindowFocus) super.onWindowFocusChanged(hasWindowFocus);}
这样就不用textview获取焦点时才能够文字滚动了,可以一直滚动
时间: 2024-09-18 03:42:56