今天一樣來談談 BaseExpandableListView 需要 override 的方法的功能。
override fun getGroupView(groupPosition: Int, isExpanded: Boolean, convertView: View?, parent: ViewGroup?): View {
}
override fun getChildView(
groupPosition: Int,
childPosition: Int,
isLastChild: Boolean,
convertView: View?,
parent: ViewGroup?
): View {
}
這兩個方法字面上看起來就與 RecyclerView.Adapter 的 onCreateView
一樣,是用來生成相對應 View 用的,而其中幾項參數是 RecyclerView 所沒有的,會拿出來討論一下。
getGroupView
: isExpanded: Boolean
顧名思義是可以讓該 Group 是否可以被展開的控制項。
getChildView
: isLastChild
用來判斷此 child 是否為最後一個子項目。
getChildView
: groupPosition
、 childPosition
通常 childList 會是用二維陣列的方式,所以這邊會多一個 groupPostion 可以讓我們判斷是要拿哪一個陣列,所以在創建 childList 時,必須注意一下順序,才不會讓這邊拿到錯誤的 List。