1. 需求
YY手機直播可以通過側滑把直播間裏的一些無關的元素清除,只顯示視頻區域和一些主要的顯示信息,如圖:
2. 具體實現
現在參照YY這個功能,自己通過代碼實現下。
定義一個FrameLayout,裏面有3個子View,分別是視頻區域mBaseView,處於最底層。
側滑視圖區域mDrawerView,處在中間位置。菜單視圖區域 mMenuView,處於最頂層。
完整的結構應該是這樣
<FrameLayout >
<mBaseView />
<mDrawerView />
<mMenuView />
</FrameLayout>
其中mBaseView是保持不動的,如果需要保持界面元素不隨滑動清除,應該放置在這一層。
mDrawerView裏面的元素都是可以隨滑動清除的。mMenuView就是一個側邊欄菜單。
實現原理也很簡單,是通過ViewDragHelper控制不同層級View的滑動,ViewDragHelper這裏就不介紹了,可以參照網上的資料進行了解
https://www.jianshu.com/p/5670a67f0b19
https://www.jianshu.com/p/e4d1f88ca922
具體實現效果如圖: