Android automatique défilement horizontal d'un TextView

Je suis en train de mettre en œuvre une seule ligne d'affichage de texte qui défile automatiquement. Mais j'ai malheureusement impossible de le faire fonctionner. Le AutoScrollTextView est déclarée à l'intérieur d'un LinearLayout (largeur et hauteur = fill_parent). La classe utilise essentiellement un Gestionnaire qui s'appelle elle-même pour faire défiler par une quantité donnée. J'ai simplifié le code pour afficher uniquement un affichage de texte qui devrait être le défilement de 5 pixels à chaque seconde.

Le journal de sortie est correcte, le getScrollX() la méthode renvoie le approprié scrollX position.

Si je ne l'appelez pas requestLayout(), rien n'est dessiné. invalidate() n'a aucun effet.

Quelqu'un a une idée?

public class AutoScrollTextView extends TextView {

    public AutoScrollTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        setSingleLine();
        setEllipsize(null);
        setText("Single-line text view that scrolls automatically if the text is too long to fit in the widget");
    }

    //begin to scroll the text from the original position
    public void startScrolling() {
        scrollHandler.sendEmptyMessage(0);
    }

    private Handler scrollHandler = new Handler() {
        private static final int REFRESH_INTERVAL = 1000;

        public void handleMessage(Message msg) {
            scrollBy(5, 0);
            requestLayout();
            Log.debug("Scrolled to " + getScrollX() + " px");
            sendEmptyMessageDelayed(0, REFRESH_INTERVAL);
        }
    };
}
  • Généralement pour le texte à faire défiler , il devrait être au point. Avez-vous essayé de donner le focus à votre disposition ? ou dire setSelected() de la vue?
  • Yep, essayé de le faire à partir de l'activité et à partir du Gestionnaire dans le widget personnalisé.