首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android 側滑選單收回後保留拉動按鈕效果的實現 (參考中信銀行 App)

     編輯:程式設計綜合問答

效果描述

側滑選單 (Drawer) 關閉時,螢幕邊緣保留一個可見的「拉動按鈕」 (Tab/Handle);使用者只能點擊或拖曳該按鈕開啟選單,無法從邊緣滑動開啟。

實現方案

參考部落格完整教學:Android 側滑選單保留拉動按鈕效果

核心步驟

  1. 自訂 DrawerLayout 或使用 SlidingPaneLayout,重寫 onDrawerSlide 監聽滑動偏移量。
  2. 在選單完全關閉 (onDrawerClosed) 時,顯示一個固定在螢幕邊緣的 ImageView 或 Button 作為 Handle。
  3. Handle 的 OnClickListener / OnTouchListener 呼叫 drawerLayout.openDrawer(Gravity.START)。
  4. 設定 drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED) 禁用邊緣滑動開啟。

關鍵程式碼片段

// 關閉邊緣滑動
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);

// Handle 點擊開啟
handleView.setOnClickListener(v -> drawerLayout.openDrawer(GravityCompat.START));

// 監聽滑動狀態同步 Handle 顯示/隱藏
drawerLayout.addDrawerListener(new DrawerLayout.DrawerListener() {
    @Override public void onDrawerClosed(View drawerView) { handleView.setVisibility(View.VISIBLE); }
    @Override public void onDrawerOpened(View drawerView) { handleView.setVisibility(View.GONE); }
    // ... 其他方法
});

總結

結合 DrawerLayout 鎖定模式與外部 Handle 控制項,即可實現「關閉時保留標籤、點擊標籤開啟」的交互體驗。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved