TableLayoutを使用しています。このレイアウトでは、水平スクロールと垂直スクロールの両方が必要です。デフォルトでは、ビューで垂直スクロールを取得できますが、水平スクロールは機能しません。
Android SDK 1.5 r3を使用しています。すでにAndroid:scrollbars="horizontal"
。
カップケーキのアップデートでは、水平スクロールが可能なフォーラムをいくつか読んでいます。
レイアウトを両方向にスクロールさせるにはどうすればよいですか?
両方のスクロール動作を実現する簡単な方法を見つけることができました。
以下がそのXMLです。
<ScrollView xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent" Android:layout_height="fill_parent"
Android:scrollbars="vertical">
<HorizontalScrollView
Android:layout_width="320px" Android:layout_height="fill_parent">
<TableLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/linlay" Android:layout_width="320px"
Android:layout_height="fill_parent" Android:stretchColumns="1"
Android:background="#000000"/>
</HorizontalScrollView>
</ScrollView>
遅すぎますが、このコードで問題が迅速に解決されることを願っています。コードをscrollviewの下に置くだけでは、何もする必要はありません。
<HorizontalScrollView
Android:id="@+id/scrollView"
Android:layout_width="wrap_content"
Android:layout_height="match_parent">
<ScrollView
Android:layout_width="match_parent"
Android:layout_height="wrap_content">
//xml code
</ScrollView>
</HorizontalScrollView>
この投稿で Androidの垂直および水平スクロールビュー 彼らは可能な解決策について引用しています:
Matt Clarkは、Androidソースに基づいてカスタムビューを構築しました。完全に機能しているようです: http://blog.gorges.us/2010/06/Android-two -dimensional-scrollview
そのページのクラスには、ビューの水平幅を計算するバグがあることに注意してください。 Manuel Hiltyによる修正はコメントにあります:
解決策:808行目のステートメントを次のように置き換えます。
final int childWidthMeasureSpec = MeasureSpec.makeMeasureSpec(lp.leftMargin + lp.rightMargin, MeasureSpec.UNSPECIFIED);
これを使って:
Android:scrollbarAlwaysDrawHorizontalTrack="true"
例:
<Gallery Android:id="@+id/gallery"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:scrollbarAlwaysDrawHorizontalTrack="true" />