直播軟體搭建,通過Android DrawerLayout實現側邊欄功能
直播軟體搭建,通過Android DrawerLayout實現側邊欄功能
DrawerLayout是V4 Library包中實現了側滑選單效果的控制元件,可以說drawerLayout是因為第三方控制元件如MenuDrawer等的出現之後,google借鑑而出現的產物。drawerLayout分為側邊選單和主內容區兩部分,側邊選單可以根據手勢展開與隱藏(drawerLayout自身特性),主內容區的內容可以隨著選單的點選而變化。
佈局檔案:
<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android=" xmlns:app=" xmlns:tools=" android:id="@+id/drawer_layout_home" android:layout_width="match_parent" android:layout_height="match_parent"> <主頁面顯示內容 android:id="@+id/refreshLayout" android:layout_width="match_parent" android:layout_height="match_parent" > </主頁面顯示內容> <LinearLayout android:id="@+id/right_draw" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="end" android:orientation="vertical"> <TextView android:layout_width="240dp" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:layout_marginTop="10dp" android:text="側邊欄" android:textColor="@color/black" android:textSize="20sp" /> </LinearLayout> </android.support.v4.widget.DrawerLayout>
首先需要將根目錄設定為DrawerLayout,其佈局可以包括兩個部分,這兩個部分既可以是一個控制元件也可以是一個佈局,其中第一個部分是預設顯示的主體內容,第二部分為側邊欄內容,當然它的大小和位置都可以通過屬性來進行修改。值得注意的是需要新增layout_gravity屬性來對這部分進行隱藏。設定android:layout_gravity="start"時側邊欄從左側進入,android:layout_gravity="end"時從右側進入,若沒有設定則會對頁面主體部分的內容造成覆蓋。
初始化程式碼:
public class HomeFragment extends LazyFragment implements View.OnClickListener { private DrawerLayout drawerLayout; private LinearLayout right; @Override protected void onCreateViewLazy(Bundle savedInstanceState) { super.onCreateViewLazy(savedInstanceState); setContentView(R.layout.fragment_home); drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout_home); right = (LinearLayout) findViewById(R.id.right_draw); }
控制側邊欄狀態的程式碼:
drawerLayout.closeDrawer(right); //開啟側邊欄 drawerLayout.openDrawer(right); //關閉側邊欄
新增監聽器監聽側邊欄的狀態:
drawerLayout.addDrawerListener(new DrawerLayout.DrawerListener() { @Override public void onDrawerSlide(View drawerView, float slideOffset) { //滑動時 } @Override public void onDrawerOpened(View drawerView) { //開啟時 } @Override public void onDrawerClosed(View drawerView) { //關閉時 } @Override public void onDrawerStateChanged(int newState) { //改變時 } });
到這裡側邊欄基本上就做好了,還是仔細實驗你會發現,當我們在側邊欄上進行操作時,頁面主體部分的監聽事件還是會被觸發。那麼這個問題怎麼解決呢?目前我採用的解決辦法是為LinearLayout right設定OnClickListener,裡面的onClick()方法什麼都不寫。
另外,當一個主頁面有兩個側邊欄時會用到鎖定功能,設定方法如下:
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED,Gravity.END); //鎖定右面的側滑選單,不能通過手勢關閉或者開啟,只能通過程式碼開啟!即呼叫openDrawer方法! drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED,Gravity.END); //解除鎖定狀態,即可以通過手勢關閉側滑選單
以上就是直播軟體搭建,通過Android DrawerLayout實現側邊欄功能, 更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2867391/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Android入門教程 | DrawerLayout 側滑欄Android
- MaterialDesgin系列文章(二)NavigationView和DrawerLayout實現側滑功能NavigationView
- MaterialDesign系列文章(二)NavigationView和DrawerLayout實現側滑功能NavigationView
- TornadoFx實現側邊欄選單效果
- 直播軟體搭建,Android實現文字滾動播放效果Android
- Flutter drawer側邊欄Flutter
- 直播系統搭建,Android使用RadioGroup+RadioButton實現導航欄Android
- 利用DrawerLayout實現側滑選單學習總結
- 微軟 Edge 瀏覽器 107 正式版釋出:新增側邊欄功能微軟瀏覽器
- 影片直播原始碼,預設展開側邊欄選單原始碼
- Android通過Chronometer控制元件實現計時功能Android控制元件
- Android最簡單的側劃選單,DrawerLayout的使用Android
- 採用JavaScript+XML實現具有樹形選單功能的論壇側邊導航欄JavaScriptXML
- Vue Element Admin 新增側邊欄Vue
- CSS3實現側邊欄快速定位的隱藏和消失CSSS3
- 直播軟體搭建,vue 複製剪下板功能Vue
- 直播平臺軟體開發,實現自定義標題欄
- 微軟推出全新Win10 App Project Newsbar:桌面右側新聞側邊欄微軟Win10APPProject
- Flutter側邊欄控制元件-SideBarFlutter控制元件IDE
- jQuery固定側邊欄外掛ssMenujQuerySSM
- OctoberCMS 外掛學習 側邊欄
- 短視訊平臺開發,依靠DrawerLayout實現側滑選單效果
- 微軟 Win11/10 Edge 瀏覽器正測試側邊欄調整大小功能微軟瀏覽器
- 又一個 iOS 側邊欄元件: SideMenuiOS元件IDE
- 更改 Sublime text 3 側邊欄字型大小
- 線上直播原始碼,JS動態效果之,側邊欄滾動固定效果原始碼JS
- 如何在直播軟體搭建中,實現圖片瀑布流效果?
- 直播平臺搭建,實現圖片縮圖功能
- flutter實戰1:完成一個有側邊欄的主介面Flutter
- Android通過WindowManager實現懸浮框Android
- 直播軟體搭建,姓名,身份證input驗證過濾
- 使用Vue實現後臺管理系統的動態路由以及側邊欄選單Vue路由
- 直播app原始碼,根據頁面滾動高亮顯示目錄的側邊欄APP原始碼
- 直播平臺軟體開發,Android 計時器,定時功能Android
- jQuery簡單實用的響應式固定側邊欄外掛jQuery
- 直播平臺軟體開發,uni-app實現選項卡功能APP
- 直播軟體開發,Android實現根據程式名殺死特定程式Android
- 直播軟體搭建,利用原生JS實現回到頂部以及吸頂效果JS