为什么我不能在 textview android 中滚动?

Why i cant scroll in textview android?

我是 android 的初学者,我在 android studio 中编写了简单的应用程序以在 textView 中显示简单文本,但是当我在 textView 中编写大文本时,textview 无法滚动,我的 xml 文件是:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer_layout"
    android:layout_width="match_parent" android:layout_height="match_parent"
    tools:context=".MainActivity">
    <FrameLayout android:id="@+id/container" android:layout_width="match_parent"
            android:layout_height="match_parent" >
    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="Large Text"
            android:id="@+id/MAINLABEL"
            android:layout_gravity="center" />
        </FrameLayout>
</android.support.v4.widget.DrawerLayout>


发生了什么?

如果 TextView 没有自动滚动,请将其包裹在 ScrollView 中以使其滚动。

documentations开始,TextView class也负责自己的滚动,所以不需要ScrollView,但是两者一起使用可以达到文本视图的效果在更大的容器中。

Paresh 提供的另一个答案可以,但肯定 maxLines 需要您输入任意数字;我猜这不是适用于所有屏幕尺寸和字体大小的东西。所以用 ScrollView 包裹它更简单,这意味着你不必添加任何进一步的 XML 属性或代码(比如设置移动方法)。

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

<TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="Large Text"
            android:id="@+id/MAINLABEL"
            android:layout_gravity="center" />

</ScrollView>

水平滚动:

<HorizontalScrollView android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TextView android:layout_width="40dp"
        android:layout_height="wrap_content"
        android:scrollHorizontally="true"
        android:text="Horizontal scroll view will work now"/>

</HorizontalScrollView>

垂直滚动:

实际上您不需要使用 ScrollView

只需设置

android:maxLines = "AN_INTEGER"

android:scrollbars = "vertical"

布局的 xml 文件中 TextView 的属性。

然后使用:

yourTextView.setMovementMethod(new ScrollingMovementMethod());

在您的代码中。

它会帮助你。谢谢。

如果您想水平滚动文本,则将 TextView 包裹在 HorizontalScrollView 内,或者如果您想垂直滚动 TextView,则将其包裹在 ScrollView 内。

水平滚动

 <HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >

    <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:text="Large Text"
                android:id="@+id/yourid"/>

    </HorizontalScrollView>

垂直滚动

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

<TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="Large Text"
            android:id="@+id/yourid"/>

</ScrollView>