Android View的ScrollBar

來源:互聯網
上載者:User

     Android中的View對於ScrollBar和Scroll的支援是非常靈活的,不僅僅是UI樣式可變,計算參數的方式也是可變的。
     在Android中,任何View都可以顯示出ScrollBar,唯一的條件是自身高度不足以顯示全部內容。

     在UI元素上,ScrollBar由兩部分組成,一個是Track(滑道),一個是Thumb(滑塊),這兩部分都是可以定製的(指定自訂的drawable),另外ScrollBar的寬度(豎向)或高度(橫向)也是可以控制的,相關的控制屬性是:

android:scrollbarThumbHorizontalandroid:scrollbarThumbVerticalandroid:scrollbarTrackHorizontalandroid:scrollbarTrackVerticalandroid:scrollbarSize

    ScrollBar分為豎向的和橫向的,也可以強制去掉,控制這一點的屬性是:android:scrollbars
    對於豎向的ScrollBar,我們還可以控制它是顯示在左邊還是右邊,控制這一點的函數是:setVerticalScrollbarPosition
    橫向ScrollBar只能顯示在下面。

    ScrollBar還有淡出效果,在時間參數和是否允許淡出方面,我們是可以控制的:

android:fadeScrollbarsandroid:scrollbarDefaultDelayBeforeFadeandroid:scrollbarFadeDuration

    在ScrollBar淡出之後,ScrollBar一般是完全看不見的,但是我們可以選擇Track始終可見:

android:scrollbarAlwaysDrawHorizontalTrackandroid:scrollbarAlwaysDrawVerticalTrack

    android:isScrollContainer是一個令人迷惑的屬性,設定它或者不設定它,有時並不能帶來明顯的區別。如果設定為true且它的子View包含EditText,並且串連到IME(此時軟鍵盤會彈出 ),那麼軟鍵盤會盡最大可能擠壓該View,那樣的話,該View的整個內容都會出現在軟鍵盤之上,而不是部分內容被遮住。但是即使不設定該屬性,有時仍然能達到上述效果,這是因為 Android在擠壓View的時候,也會考慮其它因素,設定該屬性可以在這方面得到一個保證。下面的問答很好的解釋了這個屬性的意義和原理:
http://stackoverflow.com/questions/5308247/what-does-androidisscrollcontainer-do

    android:scrollbarStyle控制著ScrollBar的顯示位置和樣式,可取的值如下:

insideOverlayinsideInsetoutsideOverlayoutsideInset

    inside表示顯示在padding地區的內側,outside表示顯示在padding地區的外側。
    Inset表示將自動增加padding以顯示ScrollBar(這意味著內容地區將縮小),Overlay表示不會增加padding以顯示ScrollBar,而是浮動在內容上面(可能會遮住內容)。

    以下是幾個自訂方法,View提供了預設實現,具體類還需自己實現,如果有必要的話:

computeHorizontalScrollExtentcomputeHorizontalScrollOffsetcomputeHorizontalScrollRangecomputeVerticalScrollExtentcomputeVerticalScrollOffsetcomputeVerticalScrollRangecomputeScroll

    以下方法可以在實現的時候調用:

canScrollHorizontallycanScrollVerticallyawakenScrollBars
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.