Моя проблема может быть связана с этим:
Добавить нижний колонтитул в Android TouchListView
В демонстрационном проекте TouchlistView Commonware https://github.com/commonsguy/cwac-touchlist/blob/master/demo/src/com/commonsware/cwac/tlv/demo/TouchListViewDemo.java
В качестве нижнего колонтитула добавляется простое текстовое представление, которое работает нормально. Когда я вместо этого добавляю свой собственный, он ломается при удалении элементов. Изначально с 4 элементами нижний колонтитул остается на позиции 5 после удаления любого из 4 элементов.
Вот как я добавляю нижний колонтитул:
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 для нижнего колонтитула), даже после удаления элементов.
Кто знает, в чем разница с моим пользовательским нижним колонтитулом?
TouchListView
, которые я могу исправить. - person CommonsWare   schedule 07.09.2011TouchListView
, что, безусловно, не является ожидаемым способом настройки чего-либо. Я не могу заставить его построить ни в Eclipse, ни через командную строку. Я проведу некоторые эксперименты по этому вопросу самостоятельно, насколько смогу. - person CommonsWare   schedule 08.09.2011