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

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

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

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

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

val bottomSheetBehavior = BottomSheetBehavior.from(scrollView)

拿到BottomSheetBehavior后通過(guò)addBottomSheetCallback添加監(jiān)聽(tīng)。需要實(shí)現(xiàn)兩個(gè)方法:

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

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

首先,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="搜索關(guān)鍵詞"
    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"/>

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

override fun onSlide(bottomSheet: View, slideOffset: Float) {
//在peekHeight位置以上 滑動(dòng)(向上、向下) slideOffsetbottomSheet.getHeight() 是展開(kāi)后的高度的比例
  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展示的效果基本就實(shí)現(xiàn)了。只要你的想象力夠豐富,在這里玩出花都可以。

以上便是實(shí)現(xiàn)高德地圖首頁(yè)效果的全部?jī)?nèi)容,希望對(duì)大家有所幫助。

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

相關(guān)文章

  • 如何在Android Studio下進(jìn)行NDK開(kāi)發(fā)

    如何在Android Studio下進(jìn)行NDK開(kāi)發(fā)

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

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

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

    Android畫(huà)中畫(huà)窗口開(kāi)啟方法

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

    Android的多媒體管理庫(kù)Glide的基本使用示例

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

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

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

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

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

    Android?Camera1實(shí)現(xiàn)預(yù)覽框顯示

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

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

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

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

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

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

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

最新評(píng)論

高密市| 鄂伦春自治旗| 金坛市| 齐齐哈尔市| 渑池县| 道真| 城固县| 汕头市| 台北县| 阳江市| 三原县| 封丘县| 甘谷县| 万安县| 贡山| 赣州市| 南京市| 扎囊县| 永德县| 会昌县| 荥经县| 霞浦县| 阳朔县| 南木林县| 九江市| 新竹县| 福泉市| 柳河县| 潞城市| 伽师县| 贵南县| 申扎县| 泸水县| 高州市| 崇义县| 涿鹿县| 乐业县| 密云县| 金塔县| 新宁县| 林西县|