33

ScrollView を適切にスクロールできません。通常の LinearLayout であるかのように、常に下部のコンテンツが切り取られます。

私のコード

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

    <LinearLayout android:id="@+id/scroll_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:isScrollContainer="true"
        android:orientation="vertical" >

もちろん、「fillViewport」と「isScrollContainer」のプロパティを追加/削除しようとしましたが、何も変わりませんでした。

これは ScrollView 用です (垂直のみ)

水平スクロールには Horizo​​ntalScrollView を使用する必要があります。

4

14 に答える 14

40

回答: XML レイアウトのルート要素として使用すると、ScrollView は機能しません。LinearLayout 内にラップする必要があります。

解決策:

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

    <ScrollView android:id="@+id/scroll_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true" >

        <LinearLayout android:id="@+id/scroll_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

        </LinearLayout>
    </ScrollView>
</LinearLayout>
于 2013-02-11T13:06:50.000 に答える
7

Scroll View as Parent には問題はありません。スクロールビューの直接の子にパディング/マージンを追加すると、このような問題に直面しました。高さと幅のプロパティだけでスクロールビューの子を保持すると、うまく機能します。

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:animateLayoutChanges="true"
        android:fillViewport="true">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:animateLayoutChanges="true"
            android:orientation="vertical">
</LinearLayout>
</ScrollView>
于 2018-10-31T08:02:55.130 に答える
2

Android Studio は、一部のテンプレート (Master-Detail など) のアクティビティ ファイルに NestedScrollView を追加します。フラグメント ファイルに ScrollView があり、そのフラグメントのアクティビティ ファイルに別の ScrollView があると、スクロール ビューが機能しなくなります。フラグメントファイルの ScrollView を削除し、アクティビティファイルに残して問題を解決しました。

于 2015-10-10T18:26:46.770 に答える
2

を削除android:isScrollContainerLinearLayoutます。ドキュメントに従って、android:isScrollContainerビューをスクロール可能に設定するために使用されます。お役に立てば幸いです。定義については、このリンクを参照してください。

于 2013-02-11T11:23:51.140 に答える
0

Looks like you're not using some of the properties and rules.

android:layout_height="0dp"
android:scrollbars="none"
android:fillViewport="true"

Also, after this try to wrap all your scrolling content in Constraint Layout.

<tech.loung.views.SlidingScrollView
android:id="@+id/scrollview_settings"
android:layout_width="match_parent"
android:layout_height="0dp"
android:scrollbars="none"
android:fillViewport="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/top_layout">
于 2021-08-24T17:15:35.787 に答える