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

Android 九宮格佈局實現:GridView 與 RecyclerView 方案

     編輯:程式設計綜合問答

問題背景

想做便簽應用,需呈現九宮格卡片佈局。ListView 僅支援單行或單列,無法直接實現網格效果。

推薦方案

1. GridView(傳統、簡單)

<GridView
    android:id="@+id/gridView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:numColumns="3"
    android:verticalSpacing="10dp"
    android:horizontalSpacing="10dp"
    android:stretchMode="columnWidth" />
  • 配合 BaseAdapter 填充資料,適合簡單靜態網格。

2. RecyclerView + GridLayoutManager(現代、靈活)

RecyclerView recyclerView = findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new GridLayoutManager(this, 3));
recyclerView.setAdapter(new MyAdapter(dataList));
  • 支援動畫、項目裝飾(ItemDecoration)、異步載入圖片、多佈局類型。
  • 可輕易切換為 StaggeredGridLayoutManager 實現瀑布流。

3. FlexboxLayout(進階彈性)

Google 開源 flexbox-layout 庫,支援 CSS Flexbox 風格自動換行、對齊,適合不規則卡片尺寸。

選型建議

方案優點缺點
GridViewAPI 簡單、相容舊版本無動畫、難以擴展、已棄用
RecyclerView + GridLayoutManager效能佳、擴展性強、官方推薦程式碼稍多
FlexboxLayout極致彈性、響應式需引入第三方庫

結論

新專案首選 RecyclerView + GridLayoutManager,舊專案維護可用 GridView。

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