可見我想從ListView中獲取子視圖,然而,該方法等待,直到視圖是活動
listview.getChildAt(pos)
返回null
如果視圖是不實際顯示在屏幕上。在
protected void onCreate(Bundle saved)
的尾部調用該方法也返回null
,因爲似乎膨脹視圖的後臺進程仍在後臺運行。在致電getchildAt(pos)
之前,我如何檢查視圖是否在屏幕上可見。我曾嘗試使用30ms的計時器,並且當時確實返回了正確的對象,但我不想使用硬編碼到應用程序中的值。
編輯代碼:
我試圖動態修改個別項目的背景顏色:
View view = list.getChildAt(list.getFirstVisiblePosition());
View.setBackgroundColor(getResources().getColor(android.R.color.holo_blue_bright));
代碼?你可能需要將你的調用移動到onResume()方法 – Booger
只是爲了清楚你想完成什麼:我假設你想改變'ListView'項目視圖。您應該更好地修改'ListView'後面的適配器,以便進行任何更改。這比從外部嘗試做得更可靠。也許你可以告訴我們更多你想要完成的事情。 – tiguchi
我已經添加了代碼。將它添加到onResume()不起作用。我想爲列表視圖中的每個項目設置不同的顏色,因此我使用list.getChildAt()方法,並將通過循環運行以設置顏色。 – iamseiko