gpt4 book ai didi

Android多textview跑马灯

转载 作者:太空宇宙 更新时间:2023-11-03 12:23:27 25 4
gpt4 key购买 nike

在有很多 TextView 可能有很长的文本所以已经完成了

android:marqueeRepeatLimit="marquee_forever"
android:ellipsize="marquee"
android:singleLine="true"
android:scrollHorizontally="true"
android:focusable="true"
android:focusableInTouchMode="true"

对于第一个 TextView ,它工作正常但对于其他它不起作用,如果有人在 Activity 中为其他 TextView 做过,请帮助我。

谢谢。

最佳答案

使用 TextView 扩展类并覆盖以下方法非常容易

package com.az.app;

import android.content.Context;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.widget.TextView;

public class ScrollingTextView extends TextView {

public ScrollingTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}

public ScrollingTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}

public ScrollingTextView(Context context) {
super(context);
}

// ===========================================================
// Constants
// ===========================================================

// ===========================================================
// Fields
// ===========================================================

// ===========================================================
// Constructors
// ===========================================================

// ===========================================================
// Getter & Setter
// ===========================================================

// ===========================================================
// Methods for/from SuperClass/Interfaces
// ===========================================================
@Override
protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
if (focused)
super.onFocusChanged(focused, direction, previouslyFocusedRect);
}

@Override
public void onWindowFocusChanged(boolean focused) {
if (focused)
super.onWindowFocusChanged(focused);
}

@Override
public boolean isFocused() {
return true;
}
// ===========================================================
// Methods
// ===========================================================

// ===========================================================
// Inner and Anonymous Classes
// ===========================================================


}

并在您的 XML 中执行此操作

<com.az.app.ScrollingTextView
android:id="@+id/TextView02"
android:layout_width="140dp"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/ImageView01"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:singleLine="true"
android:text="This is a really very very very very very long text "
android:textAppearance="?android:attr/textAppearanceSmall" />
</RelativeLayout>
<com.az.app.ScrollingTextView
android:id="@+id/TextView03"
android:layout_width="140dp"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/ImageView01"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:singleLine="true"
android:text="This is a really very very very very very long text "
android:textAppearance="?android:attr/textAppearanceSmall" />
</RelativeLayout>

现在所有的 TextView 都将滚动。

更新:
请注意,如果没有 android:singleLine="true",它就无法工作。将它与 android:maxLines="1" 一起使用,尽管我们知道它已被弃用。

关于Android多textview跑马灯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8455915/

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