日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android attrs获取_Android 常用侧滑栏实现

發布時間:2025/3/15 Android 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android attrs获取_Android 常用侧滑栏实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們在平常使用手機時可以看到很多的App的會有側滑菜單欄的效果,這次我將使用SlidingPaneLayout來實現這個功能。

首先我們先看下最終效果:


1. SlidingPaneLayout

SlidingPaneLayout提供了一個水平的、多窗格的布局。使用該控件我們可以實現側滑的效果,其布局文件下面的第一個子控件是作為一個導航視圖(也就是滑動后左邊視圖),其余部分是內容視圖。

可以簡單的嘗試一下

<?xml version="1.0" encoding="utf-8"?><androidx.slidingpanelayout.widget.SlidingPaneLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center_horizontal"tools:context=".MainActivity">?<LinearLayoutandroid:layout_width="150dp"android:layout_height="match_parent"android:background="@color/colorPrimary"android:orientation="vertical">?<TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="LeftMenu"android:textSize="20sp"android:layout_margin="10dp"/></LinearLayout>?<LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"android:orientation="vertical">?<TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="main"android:textSize="30sp"android:layout_margin="10dp"/></LinearLayout>??</androidx.slidingpanelayout.widget.SlidingPaneLayout>

通過上面的布局,我們可以實現一個測滑的效果

2. 左側欄縮放

通過下面這段代碼,使得左側欄滑動時有一個縮放的效果

SlidingPaneLayout slidingPaneLayout = findViewById(R.id.sliding_layout);//獲取到左側導航欄mLeftView = slidingPaneLayout.getChildAt(0);slidingPaneLayout.setPanelSlideListener(new SlidingPaneLayout.PanelSlideListener() {@Overridepublic void onPanelSlide(@NonNull View panel, float slideOffset) {//滑動窗格的位置更改時調用//設置側面欄縮放mLeftView.setPivotX(-mLeftView.getWidth() / 6.0f);mLeftView.setPivotY(mLeftView.getHeight() / 2.0f);mLeftView.setScaleX(0.7f + 0.3f * slideOffset);mLeftView.setScaleY(0.7f + 0.3f * slideOffset);}@Overridepublic void onPanelOpened(@NonNull View panel) {//在滑動窗格完全打開時調用}@Overridepublic void onPanelClosed(@NonNull View panel) {//當滑動窗格完全關閉時調用}});

在onPaneSlide中有兩個參數,第一個參數是被移動的view,第二個參數則是滑動時的偏移值,范圍是0~1

當我們對一個View設置縮放動畫時,縮放軸點默認是該View的中心點。如果我們想改變縮放軸點位置,可以通過setPivotX(float pivotX)設置縮放軸點X軸的坐標,通過setPivotY(float pivotY)設置縮放軸點Y軸的坐標。再通過setScaleX和setScaleY來實現最終的縮放效果。

實現效果:

在SlidingPaneLayout下添加個背景顏色效果會更好些

android:background="@color/colorPrimary"

3. 主要內容(右側)縮放

在onPanelSlide方法下加上下面一段代碼,即可實現

mMainView.setScaleX(1f - 0.3f * slideOffset);mMainView.setScaleY(1f - 0.3f * slideOffset);

還可以再給右邊設置個陰影的效果

mMainView.setElevation(6.0f * slideOffset);

4. 自定義SlidingPaneLayout

上面就是最終要實現的側滑欄的三個最主要的內容。理解上面三個其實就可以做出一開始給的那種效果。但有些時候,可能我們不希望通過滑動來顯示出左邊的導航欄,而是直接通過點擊一個按鈕來打開左邊欄。在SlidingPaneLayout中并沒這樣的方發來禁止它滑動,這時候我們就需要自己來自定義。

public class CusSlidingPaneLayout extends SlidingPaneLayout {?//是否禁止private boolean isForbid = false;?public CusSlidingPaneLayout(@NonNull Context context) {this(context, null);}?public CusSlidingPaneLayout(@NonNull Context context, @Nullable AttributeSet attrs) {this(context, attrs, 0);}?public CusSlidingPaneLayout(@NonNull Context context, @Nullable AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);}?/*** 讓外面可以調用此方法來禁止滑動** @param isForbid*/public void forbidSlide(boolean isForbid) {this.isForbid = isForbid;}?/*** 攔截觸屏事件** @param ev* @return*/@Overridepublic boolean onInterceptTouchEvent(MotionEvent ev) {if (ev.getAction() == MotionEvent.ACTION_MOVE) {if (isForbid) {return false;}}return super.onInterceptTouchEvent(ev);}?@Overridepublic boolean onTouchEvent(MotionEvent ev) {if (ev.getAction() == MotionEvent.ACTION_MOVE) {if (isForbid) {return false;}}return super.onTouchEvent(ev);}}

Demo

總結

以上是生活随笔為你收集整理的android attrs获取_Android 常用侧滑栏实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 色偷偷av男人的天堂 | 国产精品jizz | 青青草手机视频 | 天天草天天射 | 中文字幕h| 精品久久一区二区 | 五月av综合av国产av | 一级毛片基地 | 天天色天天干天天色 | 久久精品观看 | 久久久国产精品人人片 | 浓精h攵女乱爱av | 日韩精美视频 | 免费黄色小视频网站 | 五月天狠狠干 | 中文字幕 视频一区 | 国产精品电影一区 | 亚洲在线免费观看视频 | 日本在线观看网站 | 久精品在线观看 | 2018天天操| 国产成人一区二区 | 超碰超碰在线 | 日韩一级片中文字幕 | 亚洲成人777 | 羞羞影院体验区 | 男男做的视频 | 亚洲精品视频免费观看 | 亚洲精品国产精品乱码不99按摩 | 国产乱淫av一区二区三区 | 亚洲成人偷拍 | 妺妺窝人体色www在线下载 | 女人被灌满精子 | 亚洲成人av免费观看 | 欧美不卡视频在线观看 | av综合久久| a片在线免费观看 | 中文字幕一二三区 | 国产乱淫av麻豆国产 | 日日操日日干 | 国产一区在线观看视频 | 欧洲天堂网 | 国产视频成人 | 久久综合五月婷婷 | 超碰网站在线观看 | 欧美人体一区二区 | 国产suv精品一区二区69 | 天天干天天色综合 | 日韩精品一区二区三区在线 | 青春草国产视频 | 亚洲婷婷网 | 神马午夜伦理影院 | 欧美精品一区二区三区蜜臀 | 国产又色又爽又黄 | 91国产网站| 青青草在线视频免费观看 | 在线免费观看国产视频 | 少妇xxxx| 91中文 | 人人搞人人插 | 黄色三级免费网站 | 日韩欧美成人精品 | 国产乱色精品成人免费视频 | 欧美特级特黄aaaaaa在线看 | jizz网站 | 成人在线免费观看网址 | 国产 欧美 日韩 | 影音先锋黄色网址 | 在线观看 亚洲 | 黄网在线免费看 | 日韩在线观看视频一区二区三区 | 精品97人妻无码中文永久在线 | 丁香婷婷色 | 国产第3页 | 91成人久久 | 久草网在线视频 | 欧美乱妇一区二区三区 | 少妇高潮一区二区三区99 | 久久女女 | 情欲少妇人妻100篇 黄色一级片欧美 | 五月综合色 | 黑人一级 | 婷婷色中文网 | 荒野求生21天去码版网站 | 精品蜜桃一区二区三区 | 动漫大乳美女 | 一区二区三区在线视频观看 | 午夜xx| 欧美顶级黄色大片免费 | 噜噜av| 中文字幕一区二区在线视频 | 九九精品视频在线观看 | aaa成人| 麻豆网站在线免费观看 | 国产三级在线观看视频 | 香蕉视频在线观看网站 | 法国空姐在线观看免费 | 激情四射av | 日韩中文三级 |