我的问题可能与此问题有关:
Add footer to Android TouchListView
在Commonware的touchlistview https://github.com/commonsguy/cwac-touchlist/blob/master/demo/src/com/commonsware/cwac/tlv/demo/TouchListViewDemo.java
的演示项目中添加一个简单的textview作为页脚工作正常。当我添加自己的时候,它会在删除项目时崩溃。最初有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),即使在删除项目后也是如此
谁知道我的自定义页脚有什么不同?
答案 0 :(得分:0)
虽然我无法重现你的问题,但还有其他问题。 : - )
即使在基线代码中,如果从应用页脚的TouchListView
中删除一行,也会得到奇怪的视觉效果。从层次结构视图的角度来看,似乎发生的情况是,对于每个删除的行,页脚都是重复的 - 删除四行,获得四个页脚。
我不知道为什么会这样。 TouchListView
忽略了提供其内容的ListAdapter
。也许这就是实际问题。
目前,我将不得不正式支持同时使用页脚和支持删除模式。要么单独工作,要么不能组合。如果你尝试,我会扩充TouchListView
以给出运行时异常。
最终,TouchListView
确实需要替换。作为我对触摸事件的深入探索的一部分,我可能会在2012年取而代之。也许其他人会想出他们的。由于大部分代码都是从AOSP的音乐应用程序中提取的,因此我修复的能力有限。
我很抱歉目前不支持此功能。