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

ListView 動態新增項目並讓最後一項也顯示分隔線

     編輯:程式設計綜合問答

問題現象

以代碼動態建立 ListView 並設定 Adapter 時,預設分隔線不會出現在最後一個項目下方。若希望最後一項也顯示分隔線(或自訂底部分隔樣式),需使用 addFooterView 技巧。

解決方案:新增 Footer View

// 1. 準備一個簡單的 footer 布局(res/layout/list_footer.xml)
//    只需一個高度為 1dp、背景色為分隔線顏色的 View
//    <View xmlns:android="..." android:layout_width="match_parent"
//          android:layout_height="1dp" android:background="#CCCCCC" />

// 2. 在程式碼中 inflate 並加入
View footerView = LayoutInflater.from(context)
        .inflate(R.layout.list_footer, listView, false);
listView.addFooterView(footerView);

// 3. 確保在 setAdapter 之前呼叫 addFooterView
listView.setAdapter(adapter);

原理解析

  • ListView 內部將 Footer 視為一個特殊項目,會正常繪製其上方的分隔線。
  • Footer 不參與 Adapter 的 getView,不影響資料邏輯。
  • 同理可用 addHeaderView 在頂部加入分隔線或標題。

替代方案:自訂 Item 布局

若不想用 Footer,也可在 Item 布局底部固定放一條 View 作為分隔線,並在 Adapter 的 getView 中根據 position == getCount()-1 控制顯隱。但 Footer 方式更乾淨、可復用。

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