Androidのビューにスクロールバーを追加するにはどうすればよいですか?
レイアウトXMLファイルのLinearLayout
にAndroid:scrollbars:"vertical"
を追加してみましたが、機能しません。
スクロールバーはデフォルトでAndroid=に描画されていると思いましたが、そうではないようです。自分で描画する必要があるようです。どうすればよいですか?
LinearLayout
はスクロール可能なコンテナではないため、スクロールバーを追加することはできません。
ScrollView
、HorizontalScrollView
、ListView
、GridView
、ExpandableListView
などのスクロール可能なコンテナのみがスクロールバーを表示します。
LinearLayout
をScrollView
内に配置することをお勧めします。スクロールするのに十分なコンテンツがある場合、デフォルトで垂直スクロールバーが表示されます。
<ScrollView
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
>
<LinearLayout
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
>
<!-- Your content goes here -->
</LinearLayout>
</ScrollView>
垂直スクロールバーを常に表示したい場合は、ScrollView
にAndroid:scrollbarAlwaysDrawVerticalTrack="true"
を追加します。 LinearLayout
の高さがwrap_content
に設定されていることに注意してください。これは、十分なコンテンツがある場合、LinearLayout
の高さがScrollView
よりも高くなる可能性があることを意味します-その場合、LinearLayout
を上下にスクロールできます。
この方法でウィジェットにスクロールバーを追加することはできません。ウィジェットをScrollView
でラップできます。以下に簡単な例を示します。
<ScrollView xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content">
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent">
<TextView
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:id="@+id/txt"/>
</LinearLayout>
</ScrollView>
コードでそれをしたい場合:
ScrollView sv = new ScrollView(this);
//Add your widget as a child of the ScrollView.
sv.addView(wView);