TextView可在ScrollView中滚动

时间:2015-08-19 12:38:25

标签: android textview scrollview

我在活动的顶部节点有一个ScrollView,里面有几个TextView。我希望其中一些(2个中的1个)TextView可以自行滚动。他们每个超过5行,但我希望访问者只看到5行,并且必须滚动才能观看完整的文本。但我所做的......不起作用:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
         <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textStyle="italic"
            android:text = "Blabla"/>


         <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/blanc"
            android:maxLines="5"
            android:scrollbars="vertical"
            android:text="Blablabla1\nBlablabla2\nBlablabla3\nBlablabla4\nBlablabla5\nBlablabla6\nBlablabla7\nBlablabla8\n"/>

         <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textStyle="italic"
            android:text = "Blabla"/>


        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/blanc"
            android:maxLines="5"
            android:scrollbars="vertical"
            android:text="Blablabla1\nBlablabla2\nBlablabla3\nBlablabla4\nBlablabla5\nBlablabla6\nBlablabla7\nBlablabla8\n"/>

         <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textStyle="italic"
            android:text = "Blabla"/>


        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/blanc"
            android:maxLines="5"
            android:scrollbars="vertical"
            android:text="Blablabla1\nBlablabla2\nBlablabla3\nBlablabla4\nBlablabla5\nBlablabla6\nBlablabla7\nBlablabla8\n"/>
    </LinearLayout>

</ScrollView>

这样做,TextViews放了5行,但它们不可滚动。

我做错了什么?

2 个答案:

答案 0 :(得分:1)

试试这种方式,

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent" 
  android:layout_height="fill_parent"
  android:fillViewport="true" >

  <LinearLayout
          android:orientation="vertical"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent" >
 <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textStyle="italic"
        android:text = "Blabla"/>


     <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/blanc"
        android:maxLines="5"
        android:scrollbars="vertical"
        android:text="Blablabla1\nBlablabla2\nBlablabla3\nBlablabla4\nBlablabla5\nBlablabla6\nBlablabla7\nBlablabla8\n"/>

     <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textStyle="italic"
        android:text = "Blabla"/>


    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/blanc"
        android:maxLines="5"
        android:scrollbars="vertical"
        android:text="Blablabla1\nBlablabla2\nBlablabla3\nBlablabla4\nBlablabla5\nBlablabla6\nBlablabla7\nBlablabla8\n"/>

     <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textStyle="italic"
        android:text = "Blabla"/>


    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/blanc"
        android:maxLines="5"
        android:scrollbars="vertical"
        android:text="Blablabla1\nBlablabla2\nBlablabla3\nBlablabla4\nBlablabla5\nBlablabla6\nBlablabla7\nBlablabla8\n"/>

</LinearLayout>
</ScrollView>

答案 1 :(得分:1)

ScrollView或不是没关系。解决方案是在Java代码中执行更多操作:

textviewtv.setMovementMethod(new ScrollingMovementMethod());

谢谢:Android:Textview with vertical scrolling text