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

Android 實現側滑菜單效果:子 Activity 佔屏 2/3,父 Activity 餘 1/3 同時顯示

     編輯:程式設計綜合問答

想要實現類似蘑菇街、美麗說的側滑效果:點擊按鈕後,父 Activity 被推開 20%,子 Activity 佔 80% 並從側邊滑入,兩者同時可見。這其實不需要兩個 Activity,用單一 Activity 內嵌兩個自定義 View 配合動畫即可完美實現。

核心思路

  1. 佈局結構:根佈局為 FrameLayout 或 RelativeLayout,放置兩個同級 View:leftMenuView(父內容)與 mainContentView(子內容)。
  2. 初始狀態:mainContentView 佔滿屏,leftMenuView 寬度為屏寬 20% 並置於屏左側可見區域,或完全隱藏在負座標。
  3. 動畫邏輯:點擊觸發時,對 mainContentView 執行平移動畫(TranslationX 從 0 到屏寬 80%),同時 leftMenuView 保持靜止或微動,形成「推開」視覺。
  4. 觸摸攔截:在滑動過程中攔截觸摸事件,實現跟手拖拽;釋放後根據閾值自動彈開或關閉。

關鍵代碼片段

// 動畫示例
ObjectAnimator animator = ObjectAnimator.ofFloat(mainContentView, "translationX", 0, screenWidth * 0.8f);
animator.setDuration(300);
animator.start();

進階優化

  • 使用 ViewDragHelper 實現更流暢的跟手拖拽。
  • 添加陰影、縮放、透明度變化增強層次感。
  • 考慮使用 DrawerLayout 或 SlidingPaneLayout 等官方組件簡化開發。

單 Activity 多 View 方案不僅避免了 Activity 切換開銷,還能輕松實現複雜交互,是側滑菜單的最佳實踐。

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