分析 SlideMenu 類的實現

2021-07-13 11:48:03 字數 2146 閱讀 2359

1、初始化slidemenu:

slidingmenu sm = getslidingmenu();

2、設定slidemenu陰影:

sm.setshadowwidthres(r.dimen.shadow_width);//陰影寬度     

sm.setshadowdrawable(r.drawable.shadow);//陰影drawable

sm..setshadowdrawable(true)//是否有陰影

3、設定slidemenu來開後離邊框距離:

sm.setbehindoffsetres(r.dimen.slidingmenu_offset);//拉開後離邊框距離

4、設定漸變:

sm.setfadeenabled(true);/是否有漸變    

sm.setfadedegree(0.35f);//設定漸變比率

5、設定slidemenu布局:

setbehindcontentview(r.layout.fr_slide_menu_right_frame);  

getsupportfragmentmanager().begintransaction()

.replace(r.id.fr_slide_menu_right_frame, new addchannelfragment()).commit();

fragmenttransaction類主要用於管理fragment,有新增,替換,刪除等操作。尤其是begintransaction()與commit()方法與sql中的事務有點類似。

6、設定模式:

sm.setmode(slidingmenu.right);//選單右邊顯示

slidingmenu.left 選單左邊顯示;

slidingmenu.left_right選單兩側顯示。

注意:選單兩側顯示的時候,既然顯示兩個就應該設定兩個布局,需要設定第二個布局:

// 設定左右側都有  

sm.setmode(slidingmenu.left_right);

// 此時要再次新增布局選單,上乙個為左側,這個為右側

sm.setsecondarymenu(r.layout.menu_frame_two);

getsupportfragmentmanager()

.begintransaction()

.replace(r.id.menu_frame_two,

new samplelistfragment()).commit();

sm.setsecondaryshadowdrawable(r.drawable.shadowright);

7、設定划動模式:

sm.settouchmodeabove(slidingmenu.touchmode_fullscreen);//全屏滑動

slidingmenu.settouchmodeabove().其中一共包含三中手勢模式:

touchmode_fullscreen 全屏模式,在正文布局中通過手勢也可以開啟slidingmenu

touchmode_margin 邊緣模式,在正文布局的邊緣處通過手勢可以找開slidingmenu

touchmode_none 自然是不能通過手勢開啟slidingmenu了

8、設定sldingmenu自動判斷當前是開啟還是關閉:

toggle();

9、設定縮放比例:

// 放縮比例  

getslidingmenu().setbehindscrollscale((float)0.5);

工具類Semaphore的實現分析

說起semaphor分析,停車場的例子都給說爛了,現在以技師服務為例進行分析,希望能給大家帶來更深刻的理解。乙個團隊的技師資源是有限的,所以客人爆滿時要進行限制。對於有限的資源要進行限流 控制,高效的提高技師工作效率,這就是semaphore的應用場景。具體實現流程如下圖 semaphore基於ab...

List實現類效能和特點分析

面向介面程式設計 介面型別 變數 new 實現類 三者共同的特點 共同遵循的規範 1 允許元素重複.vector類 底層才有陣列結構演算法,方法都使用了synchronized修飾,執行緒安全,但是效能相對於arraylist較低.arraylist類 底層才有陣列結構演算法,方法沒有使用synch...

CountDownLatch類的分析

countdownlatch 實現 乙個或多個執行緒 等待 其他一組執行緒的操作執行完成。1 內部類 sync extends abstractqueuedsynchronizer 繼承了aqs,並實現了tryacquireshared,tryreleaseshared方法,同時擁有構造方法 syn...