我的问题可能与这个有关:
在Commonware的touchlistview的demo项目中https://github.com/commonsguy/cwac-touchlist/blob/master/demo/src/com/commonsware/cwac/tlv/demo/TouchListViewDemo.java
添加了一个简单的文本视图作为页脚,可以正常工作。当我添加自己的内容时,它会在删除项目时崩溃。最初有 4 个项目,在删除 4 个项目中的任何一个后,页脚将停留在位置 5。
这就是我添加页脚的方式:
View footerView = ((LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer_cloud, null, false);
这是xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="64dip"
android:gravity="center_vertical"
>
<ImageView android:id="@+id/add_icon"
android:layout_centerInParent="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_menu_add"
/>
<ImageView android:id="@+id/cloudBG"
android:layout_centerInParent="true"
android:layout_width="230dp"
android:layout_height="60dp"
android:background="@drawable/cl"
/>
</RelativeLayout>
将调试添加到 onRemove:
Log.d("tlv","count b4 remove "+adapter.getCount()+" aray: "+array.size());
adapter.remove(adapter.getItem(which));
//adapter.notifyDataSetChanged();
Log.d("tlv","count after remove "+adapter.getCount()+" aray: "+array.size());
显示适配器和数组大小已更新
我更改了 touchlistview.java 中的一些代码以修复将项目拖到最低项目下方时的崩溃:
Log.d("tlv","从"+mFirstDragPos+"拖到"+mDragPos+"cnt"+getCount());
if(mDragPos < getCount()-this.getFooterViewsCount()){// Nino van Hooff: fix out of bounds
mDropListener.drop(mFirstDragPos, mDragPos);
}else{
mDropListener.drop(mFirstDragPos, mDragPos-1);
}
}
unExpandViews(false);
getCount 函数始终返回相同的数字(项目数量 + 页脚 1),即使在项目被删除后也是如此
谁知道我的自定义页脚有什么区别?