2010年9月19日日曜日

Android Froyo(2.2)でスクロールバーを常に表示する

Froyo(2.2)からタッチしてないとスクロールバーが消えるように
なってしまったんです。でも常に表示して置きたいときもあるわけで

 android:scrollbarAlwaysDrawVerticalTrack="true"
 android:scrollbarAlwaysDrawHorizontalTrack="true"

はダメです!

 android:scrollbarDefaultDelayBeforeFade
 (API 5)

を使います。も、対処療法で、正しくは

 android:fadeScrollbars="false"
 (API 5)

を使います。
こうすると消えません。adakoda さんありがとうございます!!!
# ちなみに、この attribute は http://developer.android.com/reference/android/view/View.html には載ってませんが、
# public void setScrollbarFadingEnabled (boolean fadeScrollbars)
# なら載っているというパターンのやつですw

android:scrollbarDefaultDelayBeforeFade は
その名のとおり、消え始める前の時間を milliseconds で指定します。
10秒表示するなら、
 
 android:scrollbarDefaultDelayBeforeFade="10000"

です。

ちなみに、

 android:scrollbarFadeDuration
 (API 5)

というのもあります。これは、消え始めてから消え終わるまでの時間です。
同じく milliseconds で指定します。

 android:scrollbarFadeDuration="10000"

なら10秒かけてゆっくりフェードアウトします。


# どうもタッチが外れてからの時間のようで、起動時はもっと長く
# 表示されました。
# scrollbarDefaultDelayBeforeFade の設定値をすごく長く指定すれば
# いいのでしょうが、絶対に消えない=常に表示する方法はないみたい

 

2 件のコメント:

  1. はじめまして、Androidを勉強しているadakodaといいます。いつも楽しみに購読させていただいています。
    android:fadeScrollbars="false"を使用すると、スクロールバーが消えないかもしれません。

    返信削除
  2. adakoda さん。コメントありがとうございます。
    Reference に setScrollbarFadingEnabled(boolean fadeScrollbars) はあるけど、attribute が載ってないってパターンですねw
    ありがとうございます。追記しまーす。

    返信削除