簡體   English   中英

如何在ExpandableListView中隱藏特定組的子項?

[英]How to hide child items for a particular group in ExpandableListView?

我的ExpandableListView始終具有特定組的單個子級。 對於某些組,我想隱藏子項,但是我希望該組仍然可單擊(單擊后的每個組項都會更改其布局)。 那么,應該從getChildView為這些組返回什么?

覆蓋getChildrenCount ,對於想要的組,返回0,就好像它們沒有孩子一樣。 他們仍然將是可點擊的。

@Override
public int getChildrenCount(int groupPosition) {
    if (groupPosition == 1) {
        return 0;
    } else {
        return super.getChildrenCount(groupPosition);
    }
}

這是我的想法,代碼未經過測試

public view getChildView(int groupPosition, int ChildPosition, boolean b, View view, ViewGroup viewGroup){
if(!groupPostion)//for the group you dont want the layout to be displayed
v=your custom view for the child items.//or if you know the exact position define it like 
//if or use switch (groupPosition==something){v.setVisibility(View.GONE)}
return v;
}

您需要調用crashGroup() 同樣在您的構造函數中,您需要您的ExpandableListView

public class YourExapandableAdapter extends BaseExpandableListAdapter {

    private Context mContext;
    ExpandableListView mExpandableListView;
    int mLastExpandedGroupPosition = -1;

    public YourExapandableAdapter(Context context, ExpandableListView expandableListView) {
            mContext = context;
            mExpandableListView = expandableListView;
    }

    @Override
    public void onGroupExpanded(int groupPosition) {
        super.onGroupExpanded(groupPosition);
        if(groupPosition != mLastExpandedGroupPosition){
                mExpandableListView.collapseGroup(mLastExpandedGroupPosition);
        }

        mLastExpandedGroupPosition = groupPosition;
    }

在這種情況下,我隱藏了最后一個組,但是您可以當前組或任何您想要的組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM