成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

在Android項(xiàng)目中使用View實(shí)現(xiàn)一個(gè)側(cè)滑菜單-創(chuàng)新互聯(lián)

在Android項(xiàng)目中使用View實(shí)現(xiàn)一個(gè)側(cè)滑菜單?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

陸豐ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話(huà)聯(lián)系或者加微信:028-86922220(備注:SSL證書(shū)合作)期待與您的合作!

一、概述

  在App中,經(jīng)常會(huì)出現(xiàn)側(cè)滑菜單,側(cè)滑滑出View等效果,雖然說(shuō)Android有很多第三方開(kāi)源庫(kù),但是實(shí)際上咱們可以自己也寫(xiě)一個(gè)自定義的側(cè)滑View控件,其實(shí)不難,主要涉及到以下幾個(gè)要點(diǎn):

1.對(duì)Android中Window類(lèi)中的DecorView有所了解

2.對(duì)Scroller類(lèi)實(shí)現(xiàn)平滑移動(dòng)效果

3.自定義ViewGroup的實(shí)現(xiàn)

首先來(lái)看看效果圖吧:

在Android項(xiàng)目中使用View實(shí)現(xiàn)一個(gè)側(cè)滑菜單

在Android項(xiàng)目中使用View實(shí)現(xiàn)一個(gè)側(cè)滑菜單   在Android項(xiàng)目中使用View實(shí)現(xiàn)一個(gè)側(cè)滑菜單

  下面現(xiàn)在就來(lái)說(shuō)說(shuō)這里咱們實(shí)現(xiàn)側(cè)滑View的基本思路吧,這里我采用的是自定義一個(gè)繼承于RelativeLayout的控件叫做XCSlideView類(lèi)吧。

首先從布局文件中inflater出來(lái)一個(gè)menuView,然后通過(guò)addView的方法,將該側(cè)滑View添加到自定義的控件View中怎么讓XCSlideView 這個(gè)側(cè)滑View 隱藏到屏幕之外呢?很簡(jiǎn)單通過(guò)ScrollTo方法,移動(dòng)一個(gè)屏幕寬度的距離即可,這里以左側(cè)滑出為例吧,只需要這樣 XCSlideView.this.scrollTo(mScreenWidth, 0);mScreenWidth是屏幕寬度。下面還要處理的就是底下的半透明黑色的蒙層效果,這個(gè)其實(shí)就是一個(gè)View,然后設(shè)置半透明效果。這個(gè)當(dāng)然簡(jiǎn)單了,關(guān)鍵是咱們讓他顯示在咱們的自定義側(cè)滑View的下面呢,這里咱們先給出DecorView的簡(jiǎn)單分析,方便下面介紹添加半透明View蒙層下:

在Android項(xiàng)目中使用View實(shí)現(xiàn)一個(gè)側(cè)滑菜單

下面是對(duì)上面這張圖的解釋?zhuān)?/p>

1、DecorView為整個(gè)Window界面的最頂層View。

2、DecorView只有一個(gè)子元素為L(zhǎng)inearLayout。代表整個(gè)Window界面,包含通知欄,標(biāo)題欄,內(nèi)容顯示欄三塊區(qū)域。

3、LinearLayout里有兩個(gè)FrameLayout子元素。

  (20)為標(biāo)題欄顯示界面。只有一個(gè)TextView顯示應(yīng)用的名稱(chēng)。也可以自定義標(biāo)題欄,載入后的自定義標(biāo)題欄View將加入FrameLayout中。

  (21)為內(nèi)容欄顯示界面。就是setContentView()方法載入的布局界面,加入其中。

有了上面的DecorVIew知識(shí)背景,現(xiàn)在就來(lái)說(shuō)說(shuō) 怎么添加蒙層View和將自定義側(cè)滑View添加到Activity的DecorView中,首先把蒙層View添加到

(31)customView中去,然后將自定義側(cè)滑View添加到 (21)FrameLayout中去,至于為什么要這樣,是因?yàn)榭紤]到自定義側(cè)滑View不一定是寬度為屏幕寬度,所以才這么做,而且也方面處理有無(wú)標(biāo)題欄,有無(wú)采用沉浸式狀態(tài)欄設(shè)計(jì)等情況。

二、自定義側(cè)滑View的實(shí)現(xiàn)

根據(jù)上面的概述,大家應(yīng)該知道大概的思路了,下面我就給出自定義側(cè)滑View類(lèi)的核心代碼:

1、自定義側(cè)滑View用到的變量:

//側(cè)滑方向-從哪側(cè)滑出
 public static enum Positon {
 LEFT, RIGHT
 }
 private Context mContext;
 private Activity mActivity;
 private Scroller mScroller = null;
 //側(cè)滑菜單布局View
 private View mMenuView;
 //底部蒙層View
 private View mMaskView;
 private int mMenuWidth = 0;
 //屏幕寬度
 private int mScreenWidth = 0;
 //是否在滑動(dòng)中
 private boolean mIsMoving = false;
 //顯示登錄界面與否
 private boolean mShow = false;
 //滑動(dòng)動(dòng)畫(huà)時(shí)間
 private int mDuration = 600;
 //缺省側(cè)滑方向?yàn)樽? private Positon mPositon = Positon.LEFT;

網(wǎng)站欄目:在Android項(xiàng)目中使用View實(shí)現(xiàn)一個(gè)側(cè)滑菜單-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)地址:http://jinyejixie.com/article10/ccpcgo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、App設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)公司手機(jī)網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站建設(shè)搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都app開(kāi)發(fā)公司
德阳市| 马龙县| 赫章县| 调兵山市| 宜昌市| 唐河县| 安徽省| 全南县| 彰化市| 米易县| 恩平市| 休宁县| 曲靖市| 邯郸市| 呼伦贝尔市| 湖南省| 临颍县| 西乌珠穆沁旗| 祁东县| 北票市| 张家港市| 丹巴县| 易门县| 石林| 桐庐县| 万盛区| 永德县| 天门市| 荆州市| 长兴县| 湘潭市| 瓦房店市| 澜沧| 青岛市| 康保县| 韩城市| 集安市| 固镇县| 彰化县| 临安市| 子长县|