38

Androidでは、最大の高さを持つスクロールビューを作成してコンテンツをラップするにはどうすればよいですか?基本的にコンテンツを垂直にラップしますが、最大の高さがありますか?

私は試した

<ScrollView 
     android:id="@+id/scrollView1"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
         android:maxHeight="200dp"
     android:layout_alignParentBottom="true" >

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

    </LinearLayout>
</ScrollView>

しかし、これは機能していませんか?

4

7 に答える 7

22

ScrollView を拡張し、この機能を実装するコードを追加しました。

https://gist.github.com/JMPergar/439aaa3249fa184c7c0c

役に立つことを願っています。

于 2014-11-05T13:40:56.747 に答える
20

プログラムでそれを行うことができます。

 private static class OnViewGlobalLayoutListener implements ViewTreeObserver.OnGlobalLayoutListener {
    private final static int maxHeight = 130;
    private View view;

    public OnViewGlobalLayoutListener(View view) {
        this.view = view;
    }

    @Override
    public void onGlobalLayout() {
        if (view.getHeight() > maxHeight)
            view.getLayoutParams().height = maxHeight;
    }
}

ビューにリスナーを追加します。

view.getViewTreeObserver()
                  .addOnGlobalLayoutListener(new OnViewGlobalLayoutListener(view));

ビューの高さが変更されると、リスナーは onGlobalLayout() メソッドを呼び出します。

于 2015-01-20T09:58:48.417 に答える
0

スクロールビューの高さを設定するには、内部で2つのライナーレイアウトを一緒に使用し、スクロールビューを子として設定してから、スクロールビューの高さを制限するために中央のライナーレイアウトのレイアウト:高さを設定する必要があります。

于 2016-05-28T15:33:58.417 に答える
-7

ここで、Scrollview の高さを次のように設定できます -:

<ScrollView 
 android:id="@+id/scrollView1"
 android:layout_width="match_parent"
 android:layout_height="200dp"
 android:layout_alignParentBottom="true" >

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

           </LinearLayout>
</ScrollView>
于 2013-08-25T06:03:02.407 に答える