Я хочу добавить ScrollView в TextView.

Например, когда TextView превышает одну конкретную высоту, ScrollView выполняет свою задачу.

Заранее спасибо.

0
dhruv gangani 7 Сен 2016 в 21:09

4 ответа

Лучший ответ

Вы не можете добавить ScrollView внутри TextView. Вместо этого вы можете применить функцию прокрутки к TextView. Чтобы применить поведение прокрутки, сделайте следующее.

 <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hyderabad"
    android:id="@+id/sample"
    android:layout_gravity="right"
    android:textSize="30sp"
    android:maxLines="40"
    android:scrollbars="vertical"/>

В коде Java используйте следующие

TextView tv = (TextView)findViewById(R.id.sample);
tv.setText("Long long ..................add more text here........text");
tv.setMovementMethod(new ScrollingMovementMethod());
3
Gnanendra Kumar 8 Сен 2016 в 05:35

У меня есть проблема, и я делаю что-то вроде:

Fragment_chat.xml

<ScrollView
    android:id="@+id/messages_scroll"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@+id/send_panel"
    android:fillViewport="true"
    android:padding="5dp">

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <LinearLayout
            android:id="@+id/messages"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="5dp"
            android:animateLayoutChanges="true"
            android:gravity="center_horizontal|bottom"
            android:orientation="vertical">

        </LinearLayout>
    </RelativeLayout>
</ScrollView>

И я объявляю textView с другими файлами, например:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/chat_msg_user"
android:padding="5dp">

<TextView
    android:id="@+id/user_name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="@android:color/black"
    android:textStyle="italic"/>

<TextView
    android:id="@+id/msg_body"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/user_name"
    android:textColor="@android:color/black"/>

И все отлично работает: D

0
Rodriquez 8 Сен 2016 в 05:39

На самом деле вам не нужно использовать ScrollView.

Просто установите

android:maxLines = "AN_INTEGER"

android:scrollbars = "vertical"

Свойства вашего TextView в XML-файле вашего макета.

Затем используйте:

yourTextView.setMovementMethod(new ScrollingMovementMethod());

В вашем коде.

Бинго, прокручивается!

0
Syed Daniyal Nasir 8 Сен 2016 в 05:40

Вы должны поместить свой textView в LinearLayout или любой вид макета, а затем вы должны обернуть его своим scrollView в своем XML следующим образом.

<ScrollView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/scrollView1">

   <LinearLayout
       android:orientation="vertical"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content">

       <TextView
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"/>

   </LinearLayout>

</ScrollView>

ScrollView принимает только макеты (линейные, сеточные ...)

Надеюсь, это поможет :)

0
jboisjoli 7 Сен 2016 в 19:14