然後,我有一個ListView
設定爲:performItemClick ListView中並不突出項目
<ListView
android:id="@+id/list_menu_nav"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:choiceMode="singleChoice"
android:listSelector="#fff">
</ListView>
適配器設置爲:
navMenu = (ListView) findViewById(R.id.list_menu_nav);
navMenu.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,
menuList));
當我在一個項目觸及,它得到了白背景(如我設定)。但是,當我執行如下的項目點擊,它被選中,但沒有得到白色背景。
navMenu.performItemClick(navMenu.getChildAt(1), 1, navMenu.getAdapter().getItemId(1));
我知道這是因爲選擇了其他一切工作正常(偵聽器調用,getCheckedItemPosition
返回正確的值)。
這種情況下正確的方法是什麼?替換爲自定義的佈局,並自己做高亮或有沒有一種方法使用相同的默認佈局?
也許你在執行前點擊需要'invalidate'項目。 – Naddy
我測試過它。它不起作用,在performClick之後'navMenu.invalidate()'和'navMenu.requestLayout()'。 :\ –
@EugenMartynov據推測'listSelector'標記在列表中選擇的內容。遵循你所說的話,也許android團隊應該改變名稱爲'listSelectorForUserClicks'。 –