亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

基于Android實(shí)現(xiàn)一個常用的布局吸頂效果

 更新時間:2023年09月04日 08:32:52   作者:似曾相識2022  
這篇文章給大家介紹一個布局吸頂效果,一般出現(xiàn)在內(nèi)容較長頁面還嵌套著分類頁面的情況,比如電商的詳情頁嵌套分類,在頁面滑動到tab的時候我們希望tab還能保留在頁面頂部而不被頂上去,文中有詳細(xì)的代碼示例,需要的朋友可以參考下

今天給大家?guī)硪粋€布局吸頂效果。一般出現(xiàn)在內(nèi)容較長頁面還嵌套著分類頁面的情況,比如電商的詳情頁嵌套分類,在頁面滑動到tab的時候我們希望tab還能保留在頁面頂部而不被頂上去。話不多說,直接上效果圖:

替換大法:

其實(shí)很早之前就接觸到這類效果了。當(dāng)時采用的最古老的方式:XML中編寫兩套一模一樣的tab。其中多出的一套放在頁面最頂部默認(rèn)隱藏,監(jiān)聽最外層的滑動控件。當(dāng)Y向滑動值達(dá)到tabtop時顯示頂部隱藏的那個tab以達(dá)到目的。反之,當(dāng)滑動距離小于tabbottom時,隱藏頂部的tab。

scroll?.setOnScrollChangeListener { _, _, scrollY, _, _ ->
   tabTop.visible = scrollY > tab.top
}

這樣寫得到的效果完全沒問題,但需要編寫兩套同樣的布局,有時候可能還需要編寫兩套同樣的邏輯,這顯然是不可取的。

VLayout布局:

后來又接觸過阿里的VLayout,一個針對RecyclerViewLayoutManager擴(kuò)展庫??梢詫⒏鞣N布局融為一體,整個頁面就只是一個RecyclerView。其中有一個StickyLayoutHelper布局,可以叫做吸附布局,可起到吸附頂部或底部等功能。但可能不適用于我們這個頁面,僅因?yàn)橐粋€吸附功能就去引入一個庫且配置稍微繁瑣一點(diǎn),所以這個方案僅當(dāng)備用方案。

ConsecutiveScroller:

無意之中在Github上看到了ConsecutiveScroller,可以說它是專門為各類滑動效果做的一個輪子。不僅支持各類模式的吸頂功能,還可以嵌套各類滑動控件使其連續(xù)滑動,咱們就以上面的效果圖簡單做個實(shí)現(xiàn)。

通過文檔得知,ConsecutiveScrollerLayout是作為頂級控件,由它包裹咱們的內(nèi)容。其中有個layout_isSticky屬性,為true就代表托頂,當(dāng)然可以多個控件都托頂。由于我們布局是有ViewPager的,為了能夠正?;瑒有枰獙?shí)現(xiàn)IConsecutiveScroller接口,直接自定義一個ViewPager實(shí)現(xiàn)該接口即可。

</com.donkingliang.consecutivescroller.ConsecutiveScrollerLayout>
   ......
<com.google.android.material.tabs.TabLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/white"
    app:layout_isSticky="true"
    app:tabGravity="fill"
    app:tabIndicatorColor="@color/teal_200"
    app:tabIndicatorHeight="3dp"
    app:tabMode="fixed"
    app:tabSelectedTextColor="@color/black" />
<com.donkingliang.consecutivescroller.ConsecutiveViewPager
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
</com.donkingliang.consecutivescroller.ConsecutiveScrollerLayout>

像這樣配置后運(yùn)行即可達(dá)到效果,使用起來很簡單,但其中還有些細(xì)節(jié)需要注意:

  • 文檔中注明最好將ConsecutiveScrollerLayout作為頂級布局,但我們的應(yīng)用通常是配置了無標(biāo)題欄和沉浸式主題的效果。如果將標(biāo)題寫在ConsecutiveScrollerLayout中會被滑動出屏幕,所以外部還是需要根據(jù)情況套一層布局用來實(shí)現(xiàn)沉浸式和標(biāo)題欄。
  • 該布局作為頂級布局后,其子View不再支持margin等屬性,需要用View進(jìn)行填充
  • 當(dāng)子ViewLinearlayout且視圖超過一屏?xí)r是不能滑動的,需要在Linearlayout外部嵌套一層可滑動控件

好了,以上便是實(shí)現(xiàn)一個常用的布局吸頂?shù)娜績?nèi)容,希望對大家有所幫助。

到此這篇關(guān)于基于Android實(shí)現(xiàn)一個常用的布局吸頂效果的文章就介紹到這了,更多相關(guān)Android實(shí)現(xiàn)布局吸頂內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Android Activity的跳轉(zhuǎn)與傳值詳解

    Android Activity的跳轉(zhuǎn)與傳值詳解

    這篇文章主要介紹了Android Activity的跳轉(zhuǎn)與傳值詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Android自定義控件實(shí)現(xiàn)望遠(yuǎn)鏡效果

    Android自定義控件實(shí)現(xiàn)望遠(yuǎn)鏡效果

    這篇文章主要為大家詳細(xì)介紹了Android自定義控件實(shí)現(xiàn)望遠(yuǎn)鏡效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Android開發(fā)之針對聯(lián)系人的封裝

    Android開發(fā)之針對聯(lián)系人的封裝

    本文給大家分享的是如何在Android開發(fā)中封裝聯(lián)系人模塊以及封裝后的使用及總結(jié),最后奉上代碼,有需要的小伙伴可以參考下。
    2016-02-02
  • Android開發(fā)基礎(chǔ)實(shí)現(xiàn)最簡單的視頻播放示例

    Android開發(fā)基礎(chǔ)實(shí)現(xiàn)最簡單的視頻播放示例

    這篇文章主要為大家介紹了Android開發(fā)基礎(chǔ)實(shí)現(xiàn)最簡單的視頻播放示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Android中音視頻合成的幾種方案詳析

    Android中音視頻合成的幾種方案詳析

    隨著音視頻領(lǐng)域的火熱,在很多領(lǐng)域(教育,游戲,娛樂,體育,跑步,餐飲,音樂等)嘗試做音視頻功能,下面這篇文章主要給大家介紹了關(guān)于Android中音視頻合成的幾種方案的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來一起看看吧。
    2017-12-12
  • Android二維碼的生成與掃碼-zxing示例代碼

    Android二維碼的生成與掃碼-zxing示例代碼

    本篇文章主要介紹了Android二維碼的生成與掃碼-zxing示例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • Android仿QQ好友列表實(shí)現(xiàn)列表收縮與展開

    Android仿QQ好友列表實(shí)現(xiàn)列表收縮與展開

    這篇文章主要介紹了Android仿QQ好友列表實(shí)現(xiàn)列表收縮與展開,感興趣的小伙伴們可以參考一下
    2015-12-12
  • ProgressBar、ProgessDialog-用法(詳解)

    ProgressBar、ProgessDialog-用法(詳解)

    下面小編就為大家?guī)硪黄狿rogressBar、ProgessDialog-用法(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • Android實(shí)現(xiàn)支持所有View的通用的下拉刷新控件

    Android實(shí)現(xiàn)支持所有View的通用的下拉刷新控件

    這篇文章主要介紹了Android實(shí)現(xiàn)支持所有View的通用的下拉刷新控件的相關(guān)資料,需要的朋友可以參考下
    2016-06-06
  • Android利用軟引用和弱引用避免OOM的方法

    Android利用軟引用和弱引用避免OOM的方法

    Java從JDK1.2版本開始,就把對象的引用分為四種級別,從而使程序能更加靈活的控制對象的生命周期。這四種級別由高到低依次為:強(qiáng)引用、軟引用、弱引用和虛引用。本文給大家介紹Android利用軟引用和弱引用避免OOM,需要的朋友一起學(xué)習(xí)吧
    2016-04-04

最新評論