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

Android監(jiān)聽滑動控件實現(xiàn)狀態(tài)欄顏色切換

 更新時間:2023年08月29日 10:45:11   作者:似曾相識2022  
這篇文章給大家分享一個平時在滑動頁面經(jīng)常遇到的效果:滑動過程動態(tài)修改狀態(tài)欄顏色,文中有詳細(xì)的示例代碼,對我們的學(xué)習(xí)或工作有一定的幫助,感興趣的小伙伴自己動手試試吧

今天給大家分享一個平時在滑動頁面經(jīng)常遇到的效果:滑動過程動態(tài)修改狀態(tài)欄顏色。咱們廢話不多說,有圖有真相,直接上效果圖:

看到效果是不是感覺很熟悉,相對而言如果頁面頂部有背景色,而滑動到底部的時候背景色變?yōu)榘咨蛘咂渌伾臅r候,狀態(tài)欄顏色不跟隨切換顏色有可能會顯得難看至極。因此有了上圖的效果,其實就是簡單的實現(xiàn)了狀態(tài)欄顏色切換的功能,效果看起來不至于那么尷尬。

首先,我們需要分析,其中需要用到哪些東西呢?

  • 沉浸式狀態(tài)欄
  • 滑動組件監(jiān)聽

關(guān)于沉浸式狀態(tài)欄,這里推薦使用immersionbar,一款非常不錯的輪子。我們只需要將mannifests中主體配置為NoActionBar類型,再根據(jù)文檔配置好狀態(tài)欄顏色等屬性即可快速得到沉浸式效果:

<style name="Theme.MyApplication" parent="Theme.AppCompat.Light.NoActionBar">
//基礎(chǔ)設(shè)置
 ImmersionBar.with(this)            
      .navigationBarColor(R.color.color_bg)
      .statusBarDarkFont(true, 0.2f)
      .autoStatusBarDarkModeEnable(true, 0.2f)//啟用自動根據(jù)StatusBar顏色調(diào)整深色模式與亮式
      .autoNavigationBarDarkModeEnable(true, 0.2f)//啟用自動根據(jù)NavigationBar顏色調(diào)整深色式
      .init()
//狀態(tài)欄view
status_bar_view?.let {
            ImmersionBar.setStatusBarView(this, it)
        } 
//xml中狀態(tài)欄        
<View
   android:id="@+id/status_bar_view"
   android:layout_width="match_parent"
   android:layout_height="0dp"
   android:background="#b8bfff" />

關(guān)于滑動監(jiān)聽,我們都知道滑動控件有個監(jiān)聽滑動的方法OnScrollChangeListener,其中返回了Y軸滑動距離的參數(shù)。那么,我們可以根據(jù)這個參數(shù)進(jìn)行對應(yīng)的條件判斷以達(dá)到動態(tài)修改狀態(tài)欄的顏色。

scroll?.setOnScrollChangeListener { _, _, scrollY, _, _ ->
    if (scrollY > linTop!!.height) {
        if (!isChange) {
            status_bar_view?.setBackgroundColor(
                Color.parseColor("#ffffff")
            )
            isChange = true
        }
    } else {
        if (isChange) {
            status_bar_view?.setBackgroundColor(
                Color.parseColor("#b8bfff")
            )
            isChange = false
        }
    }
}

這里判斷滑動距離達(dá)到紫色視圖末端時修改狀態(tài)欄顏色。因為是在回調(diào)方法中,所以這里一旦滑動就在不停觸發(fā),所以給了一個私有屬性進(jìn)行不必要的操作,僅當(dāng)狀態(tài)改變時且滑動條件滿足時才能修改狀態(tài)欄。當(dāng)然在這個方法內(nèi)大家可以發(fā)揮自己的想象力做出更多的新花樣來。

注意:

  • 滑動監(jiān)聽的這個方法只能在設(shè)備6.0及以上才能使用。
  • 需要初始化滑動控件的默認(rèn)位置,xml中將焦點設(shè)置到其父容器中,防止滑動控件不再初始位置。
//初始化位置
scroll?.smoothScrollTo(0, 0)
//xml中設(shè)置父view焦點
android:focusable="true"
android:focusableInTouchMode="true"

到此這篇關(guān)于Android監(jiān)聽滑動控件實現(xiàn)狀態(tài)欄顏色切換的文章就介紹到這了,更多相關(guān)Android控件狀態(tài)欄顏色切換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論