我在我的ScrollView中设置了LinearLayout。我想要一个TextView滚动。我试着在xml中使用ScrollView,就像这样。但是,它不起作用。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="8dp"
    tools:context=".SubpagesLayout.ReportResult">

    <!-- first scrollView -->
    <ScrollView
        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:background="@drawable/edit_corner_blue"
                android:gravity="center"
                android:text="@string/personalInformation"
                android:textColor="@android:color/white" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="8dp"
                android:orientation="horizontal">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/birthDate" />

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

            </LinearLayout>

            <!-- second scrollView -->
            <ScrollView
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
                    <TextView
                        android:id="@+id/textOphthalmoscopy"
                        android:layout_width="match_parent"
                        android:layout_height="80dp"
                        android:text="standard instrth various settings that allow focusing and adjustment of the light source to accommodate the viewer and to evaluate various features of the fundus." />
            </ScrollView>
        </LinearLayout>
    </ScrollView>
</LinearLayout>

我尝试了另一种方法,但还是不起作用。
android:maxLines = "AN_INTEGER"
android:scrollbars = "vertical"

我用过
myTextView.setMovementMethod(new ScrollingMovementMethod());

那么如何让TextView滚动呢?如果是第二个ScrollView

最佳答案

您可以考虑使用NestedScrollViewListView来显示可滚动的TextView
ListView将有一个固定的大小,这样就不会占用内部项目的总高度。
所以布局可能是这样的。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="8dp"
    tools:context=".SubpagesLayout.ReportResult">

    <!-- first scrollView -->
    <NestedScrollView
        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:background="@drawable/edit_corner_blue"
                android:gravity="center"
                android:text="@string/personalInformation"
                android:textColor="@android:color/white" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="8dp"
                android:orientation="horizontal">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/birthDate" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text=" TestData" />
            </LinearLayout>

            <ListView
                android:layout_width="match_parent"
                <!--set a fixed height-->
                android:layout_height="80dp"
                .. Other attributes
            </ListView>
        </LinearLayout>
    </NestedScrollView>
</LinearLayout>

ListView的列表项可能包含要滚动的TextView。将TextView的高度设置为wrap_content
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="8dp"
    tools:context=".SubpagesLayout.ReportResult">

        <TextView
            android:id="@+id/textOphthalmoscopy"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="standard instrth various settings that allow focusing and adjustment of the light source to accommodate the viewer and to evaluate various features of the fundus." />
</LinearLayout>

现在,您的ListView将有一个单独的项,并且它将以list的默认行为滚动。
整个布局将通过NestedScrollView滚动。
希望能有帮助!

07-24 09:49
查看更多