907 Stimmen

TextView unter Android scrollbar machen

Ich zeige Text in einer TextView an, der zu lang zu sein scheint, um in einen Bildschirm zu passen. in einen Bildschirm zu passen. Ich muss meine TextView scrollbar machen. Wie kann ich das das?

Hier ist der Code:

final TextView tv = new TextView(this);
tv.setBackgroundResource(R.drawable.splash);
tv.setTypeface(face);
tv.setTextSize(18);
tv.setTextColor(R.color.BROWN);
tv.setGravity(Gravity.CENTER_VERTICAL| Gravity.CENTER_HORIZONTAL);
tv.setOnTouchListener(new OnTouchListener() {
    public boolean onTouch(View v, MotionEvent e) {
        Random r = new Random();
        int i = r.nextInt(101);
        if (e.getAction() == e.ACTION_DOWN) {
            tv.setText(tips[i]);
            tv.setBackgroundResource(R.drawable.inner);
        }
        return true;
    }
});
setContentView(tv);

3voto

FoxDonut Punkte 172

Ich weiß, dies ist ein älterer Beitrag, aber so gehe ich mit dem Problem auf der Java-Seite um.

    // Allow textView to scroll
    tv.setSingleLine(true);
    tv.setHorizontallyScrolling(true);
    tv.setEllipsize(TextUtils.TruncateAt.MARQUEE);
    tv.setMarqueeRepeatLimit(-1); // Infinite
    // TextView must be 'selected'
    tv.setSelected(true);
    // Padding not necessary, but this helps so the text isn't right
    // up against the side of a screen/layout
    tv.setPadding(10, 0, 10, 0);

2voto

whitepearl Punkte 634

Der folgende Code erstellt eine automatisch horizontal scrollende Textansicht:

Beim Hinzufügen von TextView zu xml verwenden

<TextView android:maxLines="1" 
          android:ellipsize="marquee"
          android:scrollHorizontally="true"/>

Setzen Sie die folgenden Eigenschaften von TextView in onCreate()

tv.setSelected(true);
tv.setHorizontallyScrolling(true);

2voto

Rohit Mandiwal Punkte 9848

Ich hatte dieses Problem, als ich noch mit TextView innerhalb der ScrollView . Diese Lösung hat bei mir funktioniert.

scrollView.setOnTouchListener(new View.OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {

                description.getParent().requestDisallowInterceptTouchEvent(false);

                return false;
            }
        });

        description.setOnTouchListener(new View.OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {

                description.getParent().requestDisallowInterceptTouchEvent(true);

                return false;
            }
        });

1voto

Hier ist die Antwort in der wunderbaren und glücklichen Welt von JetPack Compose:

LazyColumn {
        item {
            Text(
                text = "My Long Text"
            )
        }
    }

1voto

Prince Dholakiya Punkte 3283

Wann immer Sie es brauchen die ScrollView als übergeordnetes Element verwenden Und Sie verwenden auch die Methode der Bildlaufbewegung mit TextView.

Und wenn Sie Hochformat zu Querformat Ihr Gerät, dass Zeit auftreten einige Problem . (wie) gesamte Seite ist scrollable aber Scroll-Bewegung-Methode kann nicht funktionieren.

wenn Sie noch ScrollView als übergeordnete oder Scroll-Bewegung-Methode verwenden müssen, dann verwenden Sie auch unten desc.

Wenn Sie keine Probleme haben, verwenden Sie EditText anstelle von TextView

siehe unten:

<EditText
     android:id="@+id/description_text_question"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:background="@null"
     android:editable="false"
     android:cursorVisible="false"
     android:maxLines="6"/>

Hier verhält sich der EditText wie eine TextView

Und Ihr Problem wird gelöst werden

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X