解决因为弹窗导致TextView停止滚动的问题

2019-07-26  本文已影响0人  Small_Cake

我们设置了TextView横向滚动,但因为有的时候这个页面有弹窗或其他原因导致这个TextView失去了触摸焦点,导致TextView停止了滚动状态。所以我们需要屏蔽到这个TextView的焦点改变事件就行了。

1.自定义一个类,让焦点事件一直为true

public class RollTextView extends android.support.v7.widget.AppCompatTextView {
    public RollTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    @Override
    public boolean isFocused() {
        return true;
    }
    @Override
    protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
        super.onFocusChanged(true, direction, previouslyFocusedRect);
    }
    @Override
    public void onWindowFocusChanged(boolean hasWindowFocus) {
        super.onWindowFocusChanged(true);
    }
}

2.xml中配置

<com.qiqia.duosheng.custom.RollTextView
                        android:id="@+id/tv_notice"
                        style="@style/OrangeNoticeText"
                        android:text="提醒:今天的提醒已经到期,请明天提醒,今天的提醒已经到期,请明天提醒,今天的提醒已经到期,请明天提醒!"
                        />

其中的滚动样式为:

 <!-- 橘色的提醒消息 -->
    <style name="OrangeNoticeText">
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_width">match_parent</item>
        <item name="android:background">#FFF7E9</item>
        <item name="android:textColor">#FF7229</item>
        <item name="android:textSize">14sp</item>
        <item name="android:gravity">center_vertical</item>
        <item name="android:padding">8dp</item>
        <item name="android:focusable">true</item>
        <item name="android:focusableInTouchMode">true</item>
        <item name="android:singleLine">true</item>
        <item name="android:ellipsize">marquee</item>
        <item name="android:marqueeRepeatLimit">marquee_forever</item>
    </style>

最后效果:


一直滚动,不受弹窗影响
上一篇下一篇

猜你喜欢

热点阅读