android 滾動條ScrollBar的使用

如何在自己定制的View的中顯示scrollbar杯活?
首先我說的這個scrollbar免绿,指的是滑動view右側(cè)的滾動條,比如RecyclerView总处、ScrollView等否纬。

scrollbar顧名思義浩螺,只有滾動的view才能有這個bar常挚,那問題就來了性含,如果是我們自定義的一個view兄一,然后有需要在自己的view里面顯示自己scrollbar的需求厘线,這該怎么辦呢
當時接到這個需求的時候一臉懵逼,無可下手出革,研究了一番終于小有成就

原理:
首先一個令我驚訝的是View內(nèi)部早就給我們提供了scrollbar造壮,只是我們平時不用,沒顯示而已骂束,那怎么顯示呢耳璧,API提供了一個awakenScrollBars的方法,我們只要調(diào)用一下展箱,就顯示了旨枯,真的很神奇

顯示的條件:
必須是一個可以滑動的view,可以滑動很容易理解混驰,那是如何體現(xiàn)在代碼中的呢攀隔?

View內(nèi)部提供的方法

我們只要實現(xiàn)了這三個方法,就能代表是可以滑動的栖榨,
range昆汹、offset、extent這個概念是什么意思呢

offset婴栽、extent满粗、range關系

概念很清晰了,滑動的條件只要range > extent愚争,就可以代表view可以滑動映皆,那offset的范圍便是
0 ~(range - extent)。
說了這么多轰枝,我直接上demo吧

自定義的view

public class SView extends View {
    public SView(Context context) {
        super(context);
    }

    public SView(Context context,AttributeSet attrs) {
        super(context,attrs);
    }
    
    public SView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context,attrs,defStyleAttr);
    }
    
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        // 在這里我測試劫扒,顯示滾動條
        awakenScrollBars();
        return super.onTouchEvent(event);
    }
    
    @Override
    protected int computeVerticalScrollExtent() {
        return 2000;
    }
    
    @Override
    protected int computeVerticalScrollOffset() {
        return 1000;
    }
    
    @Override
    protected int computeVerticalScrollRange() {
        return 3000;
    }
}

現(xiàn)在range是3000,extent是2000狸膏,offset的范圍就是0 ~ 1000沟饥。

xml布局中

<android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"
android:fadeScrollbars="true"/>

(ps:在這里,我僅僅是拿著豎直方向舉例子,水平方向同理)

歡迎大家交流
-end

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末贤旷,一起剝皮案震驚了整個濱河市广料,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌幼驶,老刑警劉巖艾杏,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異盅藻,居然都是意外死亡购桑,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門氏淑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來勃蜘,“玉大人,你說我怎么就攤上這事假残$怨保” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵辉懒,是天一觀的道長阳惹。 經(jīng)常有香客問我,道長眶俩,這世上最難降的妖魔是什么莹汤? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮颠印,結(jié)果婚禮上体啰,老公的妹妹穿的比我還像新娘。我一直安慰自己嗽仪,他們只是感情好荒勇,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著闻坚,像睡著了一般沽翔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上窿凤,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天仅偎,我揣著相機與錄音,去河邊找鬼雳殊。 笑死橘沥,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的夯秃。 我是一名探鬼主播座咆,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼痢艺,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了介陶?” 一聲冷哼從身側(cè)響起堤舒,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎哺呜,沒想到半個月后舌缤,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡某残,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年国撵,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片玻墅。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡介牙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出椭豫,到底是詐尸還是另有隱情,我是刑警寧澤旨指,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布赏酥,位于F島的核電站,受9級特大地震影響谆构,放射性物質(zhì)發(fā)生泄漏裸扶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一搬素、第九天 我趴在偏房一處隱蔽的房頂上張望呵晨。 院中可真熱鬧,春花似錦熬尺、人聲如沸摸屠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽季二。三九已至,卻和暖如春揭措,著一層夾襖步出監(jiān)牢的瞬間胯舷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工绊含, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留桑嘶,地道東北人。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓躬充,卻偏偏與公主長得像逃顶,于是被迫代替她去往敵國和親讨便。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,111評論 25 707
  • 內(nèi)容抽屜菜單ListViewWebViewSwitchButton按鈕點贊按鈕進度條TabLayout圖標下拉刷新...
    皇小弟閱讀 46,759評論 22 665
  • 簡介: 提供一個讓有限的窗口變成一個大數(shù)據(jù)集的靈活視圖口蝠。 術語表: Adapter:RecyclerView的子類...
    酷泡泡閱讀 5,165評論 0 16
  • (圖:我訂閱的各種微信公眾號) 社會化媒體的興起妙蔗,使得“自媒體”這一新的媒體形式越來越普遍傲霸,借助博客、微博之類的平...
    劉淼閱讀 8,814評論 25 85
  • 寶貝眉反,其實我是一個有點小男人的人昙啄,看到你跟其他男生關系好我就會有點小吃醋。不過寸五,我會安慰自己梳凛。她只有我一個男人,她...
    握著荊條閱讀 208評論 0 0