删除expandablelistview最后一项中的分隔线视图

时间:2018-06-19 11:53:07

标签: android expandablelistview

我目前在expandablelistview中为我的每个商品都有一个分隔符

<View android:id="@+id/divider"
        android:layout_height="1dp"
        android:layout_width="match_parent"
        android:background="@drawable/your_divider"
        android:layout_alignBottom="@+id/parent_layout_id"/>

我想做的是删除组中每个最后一项的分隔线。 因此,第1组中的最后一项不应有分隔线, 组2中的最后一个项目也不应有分隔线。

当前我的代码是这样的:

public View getChildView(int posParent, int posChild, boolean isLastChild, View view, ViewGroup viewGroup) {

        final AccountBalanceItem expandedListText = (AccountBalanceItem) getChild(posParent, posChild);
        if (view == null) {
            LayoutInflater layoutInflater = (LayoutInflater) mContext
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            view = layoutInflater.inflate(R.layout.card_account, null);
                    View divider = (View) view
                .findViewById(R.id.divider);
        if (isLastChild) {
            divider.setVisibility(View.GONE);
        }
     }

我当前的代码仅隐藏第2组中的最后一项,而第1组中的最后一项仍然有一个分隔符,这是错误的。 第1组和第2组的最后一项都不应有分隔线。

1 个答案:

答案 0 :(得分:1)

尝试:在if (view == null) { }之外找到分隔线,并始终设置可见性

public View getChildView(int posParent, int posChild, boolean isLastChild, View view, ViewGroup viewGroup) {

    final AccountBalanceItem expandedListText = (AccountBalanceItem) getChild(posParent, posChild);
    if (view == null) {
        LayoutInflater layoutInflater = (LayoutInflater) mContext
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        view = layoutInflater.inflate(R.layout.card_account, null);
    }
    View divider = (View) view.findViewById(R.id.divider);
    if (isLastChild) {
        divider.setVisibility(View.GONE);
    } else {
        divider.setVisibility(View.VISIBLE);
    }
    return view;
 }

希望有帮助!