我有一個最近出現的奇怪問題。起初我在我的ListView中加載所有項目。它滾動一切都很好。項目是可點擊的,並且一切正常。ListView in TabHost滾動/點擊問題
然後在我的適配器的getView我補充說:
if(pos == getCount() - 1){
Log.i("Load", "Load database");
load_database(getCount(), 5);
}
,這裏是load_database()
private void load_database(long offset, long count) {
ArrayList<VKContent> objs = BaseApplication.db.get_all(Message.class, MessageHandler.COLUMN_MAILBOX + " = " + mailbox, count, offset);
for(VKContent obj: objs){
adp.add((Message)obj);
}
}
的問題出現後,正確的。一旦加載,它會調用load_database一次,一切都很好。 ListView工作正常。點擊處理。但一旦達到「pos == getCount() - 1」。它加載新的數據,但現在無法點擊項目。當我滾動並退縮時,屏幕上的觸摸不會停止退縮。當我在退縮時嘗試滾動時,它在退出停止之前沒有任何效果。
如果我切換到不同的Tab,則listview行爲被恢復。如果我嘗試用我的滾動球來聚焦物品,那麼正常的行爲也會回來。
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@android:id/tabhost">
<LinearLayout
android:orientation="vertical"
android:layout_height="match_parent"
android:layout_width="match_parent">
<TabWidget android:id="@android:id/tabs"
android:layout_height="wrap_content"
android:layout_width="fill_parent" />
<FrameLayout android:id="@android:id/tabcontent"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:layout_weight="1">
<LinearLayout android:id="@+id/tab2"
android:orientation="vertical"
android:layout_height="fill_parent"
android:layout_width="fill_parent">
<ListView android:id="@+id/lv"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:clickable="true" />
</LinearLayout>
</FrameLayout>
</LinearLayout>
</TabHost>
編輯
我曾嘗試無效(),forceLayout(),requestLayout(),isFocusable()... ... bringToFront和load_database後等。但沒有任何幫助。
編輯2 幾乎忘了那段代碼。
tabHost.setCurrentTab(1);
tabHost.setCurrentTab(0);
由於某些原因,TabHost存在問題。我的ListView由所有選項卡共享。第一次加載視圖時,它不顯示任何內容。所以我不得不從第二個標籤切換到第一個標籤。