2017-02-19 2 views
4

Comment puis-je avoir un rectangle de sélection utilisant MaxLines au lieu de SingleLine?Marquee utilisant maxLines

Ceci est mon TextView:

<TextView 
    android:text="bla bla bla bla bla bla" 
    android:id="@+id/MarqueeText" 
    android:layout_width="30dp" 
    android:layout_height="wrap_content" 
    android:singleLine="true" 
    android:ellipsize="marquee" 
    android:marqueeRepeatLimit="marquee_forever" 
    android:scrollHorizontally="true" 
    android:focusable="true" 
    android:focusableInTouchMode="true" 
    android:freezesText="true"> 

Après mon code.java je setSelected mon TextView:

TextView txtView=(TextView) findViewById(R.id.MarqueeText); 
txtView.setSelected(true); 

Le problème est android:singleLine est désapprouvée donc je dois utiliser android:maxLines à la place, mais le chapiteau ne travaille pas avec.

Répondre

1

Vous pouvez essayer d'utiliser ceci:

android:maxLength = "10" 

OU

Après avoir réglé android:maxLines="1", vous devez définir votre inputType aussi. Donc, définissez votre android:inputType="text" et cela devrait faire l'affaire.

+0

nous ne pouvons pas mettre inputType pour un TextView –

+0

Pourquoi pas? voir ce lien https://developer.android.com/reference/android/widget/TextView.html –

2

En XML

<TextView 
    android:text="11111111111111111111111111111111111111111111111111111111111111" 
    android:id="@+id/text_marquee" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:maxLines="1" 
    android:ellipsize="marquee" 
    android:marqueeRepeatLimit="marquee_forever" 
    /> 

En Java

((TextView)findViewById(R.id.text_marquee)).setHorizontallyScrolling(true); 
((TextView)findViewById(R.id.text_marquee)).setSelected(true);