2010年9月19日日曜日

Android ScrollBar (スクロールバー)の位置

ScrollView には android:scrollBarStyle という attribute があります。
これは、スクロールバーの出る場所を設定するもので、

ConstantValueDescription
insideOverlay0x0Inside the padding and overlaid
insideInset0x01000000Inside the padding and inset
outsideOverlay0x02000000Edge of the view and overlaid
outsideInset0x03000000Edge of the view and inset


が指定できます。

いまいち違いがピンとこなかったので、並べてみました。



黒が TextView の領域、水色が ScrollView の領域です。
outsideInset をよく使っていたけど、padding が十分なら
outsideOverlay でも大丈夫ってことがわかった。

# Froyo(2.2)からスクロールバー(の thumb)がタッチしてない時は消える
# ようになって、この画像をとるのに「4個いっぺんに触るとか無理だし!」
# ということでいろいろ調べてたら見つけました。
# 別エントリにしました。
# Android Froyo(2.2)でスクロールバーを常に表示する

ちなみに xml はこんな感じ


<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text='android:scrollbarStyle="insideOverlay"'
/>
<ScrollView
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:scrollbarStyle="insideOverlay"
android:layout_weight="1"
android:scrollbars="vertical"
android:padding="10dip"
android:background="#ddddff"
android:fadeScrollbars="false"
>
<TextView
android:layout_width="300dip"
android:layout_height="fill_parent"
android:text="@string/waganeko"
android:background="#000000"
/>
</ScrollView>
...
</LinearLayout>


 
 

0 件のコメント:

コメントを投稿