11

私はアンドロイド開発が初めてで、次の問題があります。スクロール可能にするには、FrameLayout内部で使用する必要があります。ScrollView私はこれを書きました

    <ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true" 
    android:background="#00ff00">

    <FrameLayout
        android:id="@+id/frameLayout"
        android:layout_width="match_parent"
        android:layout_height="500dp"
        android:background="#ff0000">
    </FrameLayout>
   </ScrollView>

しかし、これはうまくいきません。試してみたRelativeLayoutところうまくいきましたが、 for を使用する必要がありますFrameLayout。何か案は?

4

5 に答える 5

5

ここでの回答を含め、この問題を解決するために多くのバリエーションを試しましたが、誰も役に立ちませんでした。ScrollView常にラップFrameLayoutしますが、すべてが正常RelativeLayoutですLinearLayout...

これに対する解決策を 1 つ見つけました。最小高さを に設定することですFrameLayout。メソッドごとに最小の高さを動的に設定できますsetMinimumHeight()

于 2013-03-23T13:05:41.017 に答える
3

ScrollView 内で FrameLayout を取得するには、次のようにします。

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/linearLayoutHeader1"
    android:layout_centerHorizontal="true" >

    <LinearLayout
        android:id="@+id/LinearLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >
        <FrameLayout
            android:id="@+id/FrameLayout1"
            android:layout_width="match_parent"
            android:layout_height="1440dp"
             >
        </FrameLayout>

    </LinearLayout>
</ScrollView>
于 2014-08-26T05:03:34.433 に答える
2

FrameLayoutでlayout_heightを「wrap_content」に設定してみてください

<FrameLayout
        android:id="@+id/frameLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ff0000">

FrameLayout が画面の境界線より高くなるとスクロールします。または、スクロール可能な領域の高さを固定したい場合は、ScrollView で高さを 500dp に設定します。必要に応じて異なりますが、ScrollView の子に固定の高さを設定しないでください。ScrollView の子の高さは、常に wrap_content にする必要があります。

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="match_parent"
    android:layout_height="500dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true" 
    android:background="#00ff00">

    <FrameLayout
        android:id="@+id/frameLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ff0000">
    </FrameLayout>
</ScrollView>
于 2013-03-01T17:53:52.860 に答える
2

あなたのxmlサンプルは非常に優れています。私が見ることができる唯一のことは、ScrollLayoutの親が500dpより大きい場合、スクロールしません。

実際、スクロールは、コンテンツがスクロールビューよりも大きい場合にのみ使用されます。

ここでは、コンテンツの高さを 500dip に設定し、この scrollView の親が 800dip の高さの画面で画面全体を占める場合は、scrollview を「match_parent」に設定します (たとえば)。

=>スクロールは単に必要ありません。

于 2013-03-01T17:40:53.127 に答える