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

Android 底部操作欄實現:RadioGroup/Fragment 或自定義 LinearLayout

     編輯:程式設計綜合問答

需求

類似 ES 文件管理器:進入選擇模式底部欄顯示「全選、刪除、複製」,退出顯示「新建、排序、設置」,狀態切換。

方案選型

複雜度方案適用場景
簡單RadioGroup + Fragment固定 3-5 個圖標+文字,狀態少,每個頁面一個 Fragment
中等BottomNavigationView (Material Design)標準導航,菜單資源定義,支持 Badge、Shift 模式
複雜/高度自定義自定義 LinearLayout/ConstraintLayout + 狀態機按鈕動態增減、圖標動畫、進度條、懸浮提示、多行布局

自定義實現要點


// 布局:底部 LinearLayout (horizontal) 包含若干 ImageButton/TextView
// 狀態枚舉
enum BarState { NORMAL, SELECT_MODE, EDIT_MODE }

// 切換方法
void switchState(BarState newState) {
    currentState = newState;
    // 隱藏/顯示、替換圖標/文字、綁定新點擊監聽
    btn1.setVisibility(newState == SELECT_MODE ? VISIBLE : GONE);
    btn2.setText(newState == EDIT_MODE ? "完成" : "編輯");
    // 重新綁定 OnClickListener
    btn1.setOnClickListener(v -> onSelectAll());
}

// Fragment 中調用
((MainActivity)getActivity()).switchState(BarState.SELECT_MODE);

參考資源

Android 底部操作欄狀態切換實現詳解

**按需求複雜度選:簡單用 RadioGroup/BottomNavigationView,複雜自寫 Layout+狀態機。**

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