Ich versuche eine Nachrichtenleiste in einer Textansicht zu erstellen, die mit einem Auswahlrahmen animiert wird.Wie man Newsbar mit spannable Marquee TextView in Android machen?
benutzte ich diese Ansicht mit marqueeRepeatLimit = "marquee_forever"
<TextView
android:id="@+id/scroll_notifs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:padding="10dp"
android:gravity="center"
android:focusable="true"
android:focusableInTouchMode="true"
android:background="@color/black_scrollTextView"
android:textColor="@color/white"
android:textSize="@dimen/text_size_s"
android:visibility="gone"
android:freezesText="true"/>
und ich im Code festgelegt:
TextView scroll_notifs = (TextView) view.findViewById(R.id.scroll_notifs); scroll_notifs.setSelected(true);
Die Textview wirken wie die Nachrichten-Bar und schön, das Problem animiert Jetzt ist, wie man einen Teil der Textansicht anklickbar macht, ich habe die spannbare Zeichenfolge wie folgt verwendet:
SpannableString spannableString = new SpannableString("this is the fancy box");
spannableString.setSpan(new ClickableSpan() {
@Override
public void onClick(View view) {
TextView textView = (TextView) view;
CharSequence charSequence = textView.getText();
Log.d("span click",charSequence.toString());
}
}, 0, 3, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
scroll_notifs.setText(spannableString);
scroll_notifs.setMovementMethod(LinkMovementMethod.getInstance());
So ist die Werke, klicken Sie aber nicht nach der bewegenden Spanne, es funktioniert nur, wenn ich auf dem ersten Pixel des Textview klicken, ich thinkthat ist, weil die Spanne bei 0 beginnen und 3.
am Ende aber, wenn das Festzelt ist Ich wiederhole, und ich fange an, auf die Spanne zu klicken, ihr folgt, wenn sie animiert wird, reagiert sie nicht.
Also gibt es irgendeine Art von Lösung für diese oder jede andere Idee, um eine Nachrichtenleiste mit separaten Klick-Listener zu machen.
Mit freundlichen Grüßen