テキストが長すぎる場合に、状況に応じて自動的に水平スクロールを実装したかったのです。何もフォーカスされていないアクティビティが空のときに機能しました。しかし、クロノメーターを使用したアクティビティでこれを実装しようとすると、機能しません。クロノメーターなしでテストしましたが、動作します。を使用しようとしましたがsetSelected(true)
、これも機能しません。これを解決する方法はありますか、クロノメーターのスクロール機能が必要です。コメントと回答をいただければ幸いです。
ScrollTextView.class
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);
}
@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;
}
}
テキストビュー
<com.android.app.ScrollingTextView
android:id="@+id/display_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:paddingLeft="10dp"
android:paddingTop="10dp"
android:singleLine="true"
android:text="Display Message"
android:textSize="18dp"
android:textColor="#ffffff"
android:ellipsize="marquee"
android:scrollHorizontally="true"
android:fadingEdge="horizontal"
android:marqueeRepeatLimit="marquee_forever"
android:focusableInTouchMode="true"/>