Android ExpandListView - 只需要在结尾显示EditText

时间:2018-03-30 23:04:03

标签: java android android-arrayadapter expandablelistview

我需要Android ExpandListView的帮助。

我的孩子视图看起来像这样:

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/myTextView"
    android:layout_toLeftOf="@+id/toggle"/>

<ToggleButton
    android:id="@+id/toggle"
    android:layout_width="wrap_content"
    android:textOn="Yes"
    android:textOff="No"
    />

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/myEditText"
    android:layout_below="@+id/toggle"/>

我将大量数据传递给我的适配器,例如:

    List<String> adapterData = new ArrayList<String>();
    adapterData.add("Example 1");
    adapterData.add("Example 2");
    adapterData.add("Example 3");

问题是目前我的editText出现在使用适配器初始化的每个TextView下。

我的要求是editText应该在所有行之后的最后一行(每行左边有一个TextView,右边有TottleButton)。

我试过这样做:

@Override
public View getChildView(int groupPosition, final int childPosition,
                         boolean isLastChild, View convertView, ViewGroup parent) {

       ...............

        if (childPosition ==3) {
        et1.setVisibility(View.VISIBLE);

       ..............
    }

}

请帮忙。

1 个答案:

答案 0 :(得分:0)

if(groupPosition ==(yourArrayList.size() - 1)&amp;&amp;&amp; isLastChild){

editText.setVisibility(View.VISIBLE); }

将此代码放在ExpandableListAdapter的getChildView(...)方法中。 编辑:最初设置EditText.setVisibility(INVISIBLE)的可见性。当您展开列表视图时,即在您编写了行扩展的方法中,设置EditText.setVisibility(View.VISIBLE)