最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android實現(xiàn)高德地圖首頁效果(下)

 更新時間:2023年08月30日 09:06:38   作者:似曾相識2022  
這篇文章主要為大家詳細介紹了基于Android實現(xiàn)高德地圖首頁效果下篇,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

書接上文Android實現(xiàn)高德地圖首頁效果(上),咱們講到能不能通過滑動監(jiān)聽玩出新花樣,答案是能。但這里不再是通過NestedScrollView添加滑動監(jiān)聽,而是交給咱們的BottomSheetBehavior。

由于BottomSheetBehavior是在xml中配置,那么我們要怎么拿到它呢?內部提供了from方法:

val bottomSheetBehavior = BottomSheetBehavior.from(scrollView)

拿到BottomSheetBehavior后通過addBottomSheetCallback添加監(jiān)聽。需要實現(xiàn)兩個方法:

public abstract static class BottomSheetCallback {
  //newState 狀態(tài)變化,也就是隱藏、展開、半展開等狀態(tài)
  public abstract void onStateChanged(@NonNull View bottomSheet, @State int newState);
  //slideOffset 0-1的一個比例值  代表當前位置高度占比
  public abstract void onSlide(@NonNull View bottomSheet, float slideOffset);
}

看到這里,大家應該知道應該怎么操作了,主要還是集中在onSlide方法中拿到slideOffset值,根據該值的變化做對應效果展示。

首先,XML中添加搜索框等元素:

<com.google.android.material.textfield.TextInputEditText
    android:id="@+id/search_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center_vertical"
    android:background="@null"
    android:drawableStart="@drawable/ic_search_grey"
    android:drawablePadding="8dp"
    android:gravity="center_vertical"
    android:hint="搜索關鍵詞"
    android:imeOptions="actionSearch"
    android:maxLines="1"
    android:padding="10dp"
    android:singleLine="true"
    android:textColor="@color/text_color_1"
    android:textSize="15dp" />
 <TextView
        android:id="@+id/homeView"
        android:text="漸變"
        android:gravity="center"
        android:background="@drawable/shape_white"
        android:drawableLeft="@drawable/ic_chip_home"
        android:drawablePadding="6dp"
        android:layout_width="wrap_content"
        android:layout_height="30dp"/>

核心邏輯是需要獲取當前位置高度,以此來判斷是否到達咱們之前設置的半展開高度(注意這里的半展開設置的也是占比值)。當滑動距離大于半展開高度就需要將搜索框向上平移且漸變。同時搜索框下面的homeView也需要做漸變操作。反之,在收回的時候當距離小于半展開狀態(tài)需要恢復各視圖狀態(tài)。

override fun onSlide(bottomSheet: View, slideOffset: Float) {
//在peekHeight位置以上 滑動(向上、向下) slideOffsetbottomSheet.getHeight() 是展開后的高度的比例
  if (slideOffset > 0) { 
     val height = bottomSheet.height
     distance = height * slideOffset
     //搜索欄反向位移
     val halfExpandedRatio = bottomSheetBehavior!!.halfExpandedRatio
     val halfHeight = halfExpandedRatio * height //中間狀態(tài)的高度
     if (distance > halfHeight) {
         search_view?.translationY = -(distance - halfHeight)
         search_view?.alpha = 1 - slideOffset + halfExpandedRatio
         homeView?.alpha = 1 - slideOffset
        } else {
         search_view?.translationY = 0f
         search_view?.alpha = 1.0f
         homeView?.alpha = 1.0f
        }
        fabContainer?.alpha = 1 - slideOffset
  }
}

到此,咱們gif展示的效果基本就實現(xiàn)了。只要你的想象力夠豐富,在這里玩出花都可以。

以上便是實現(xiàn)高德地圖首頁效果的全部內容,希望對大家有所幫助。

到此這篇關于Android實現(xiàn)高德地圖首頁效果(下)的文章就介紹到這了,更多相關Android實現(xiàn)高德地圖內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 如何在Android Studio下進行NDK開發(fā)

    如何在Android Studio下進行NDK開發(fā)

    這篇文章主要介紹了如何在Android Studio下進行NDK開發(fā),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • android中UI主線程與子線程深入分析

    android中UI主線程與子線程深入分析

    這篇文章主要介紹了android中UI主線程與子線程,以實例形式較為深入的分析了UI主線程與子線程的運行原理與操作技巧,有助于深入了解Android程序設計,需要的朋友可以參考下
    2015-02-02
  • Android畫中畫窗口開啟方法

    Android畫中畫窗口開啟方法

    Android8.0 Oreo(API Level26)允許活動啟動畫中畫Picture-in-picture(PIP)模式。PIP是一種特殊類型的多窗口模式,主要用于視頻播放。PIP模式已經可用于Android TV,而Android8.0則讓該功能可進一步用于其他Android設備
    2023-01-01
  • Android的多媒體管理庫Glide的基本使用示例

    Android的多媒體管理庫Glide的基本使用示例

    這篇文章主要介紹了Android的多媒體管理庫Glide的基本使用示例,Glide在圖片App中的表現(xiàn)非常好,Google旗下的Yelp也在使用,需要的朋友可以參考下
    2016-04-04
  • Android DragVideo實現(xiàn)播放視頻時任意拖拽的方法

    Android DragVideo實現(xiàn)播放視頻時任意拖拽的方法

    這篇文章主要介紹了Android DragVideo實現(xiàn)播放視頻時任意拖拽的方法的相關資料,一種在播放視頻時,能夠拖拽的方案,需要的朋友可以參考下
    2016-12-12
  • RecyclerView實現(xiàn)查看更多及收起

    RecyclerView實現(xiàn)查看更多及收起

    這篇文章主要為大家詳細介紹了RecyclerView實現(xiàn)查看更多及收起,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Android?Camera1實現(xiàn)預覽框顯示

    Android?Camera1實現(xiàn)預覽框顯示

    這篇文章主要為大家詳細介紹了Android?Camera1實現(xiàn)預覽框顯示,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Android編程實現(xiàn)仿優(yōu)酷圓盤旋轉菜單效果的方法詳解【附demo源碼下載】

    Android編程實現(xiàn)仿優(yōu)酷圓盤旋轉菜單效果的方法詳解【附demo源碼下載】

    這篇文章主要介紹了Android編程實現(xiàn)仿優(yōu)酷圓盤旋轉菜單效果的方法,涉及Android界面布局及事件響應相關操作技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下
    2017-08-08
  • Android ViewPager循環(huán)播放廣告實例詳解

    Android ViewPager循環(huán)播放廣告實例詳解

    這篇文章主要介紹了Android ViewPager循環(huán)播放廣告條實例詳解的相關資料,需要的朋友可以參考下
    2017-03-03
  • 在Flutter中正確處理文本縮放的解決方案

    在Flutter中正確處理文本縮放的解決方案

    這篇文章主要介紹了在Flutter中正確處理文本縮放的解決方案,本教程的結構首先介紹最簡單且最有影響力的解決方案,后面的部分涵蓋了較難實施且總體影響較小的解決方案,但它們對于解決特定情況很有用,需要的朋友可以參考下
    2024-06-06

最新評論

阳西县| 叶城县| 西和县| 巴林左旗| 莒南县| 项城市| 常德市| 横峰县| 阳谷县| 高青县| 福建省| 宁远县| 讷河市| 巨鹿县| 安多县| 渝中区| 冕宁县| 岳西县| 左云县| 垫江县| 随州市| 兴安盟| 翁源县| 图木舒克市| 长垣县| 厦门市| 渝北区| 衡水市| 红安县| 临漳县| 石台县| 囊谦县| 厦门市| 渝北区| 宣威市| 全州县| 萨迦县| 星子县| 正安县| 财经| 乌拉特后旗|