Rumah > Soal Jawab > teks badan
页面结构:activity-fragment—recycleView
目标,整个页面蒙层,并在recycleView的第一个item上添加一个高亮提示。
现在我要获取这个item的view,在onResume中使用getLayoutManager.findViewByPosition方法得到的view为空。
我应该何时何地获取该view?
PHP中文网2017-04-18 09:05:54
getLayoutManager.findViewByPosition(...) dipanggil pada masa yang salah
getView().post(new Runnable() {
Lihat paparan = getLayoutManager.findViewByPosition(0);
//TODO...
});
大家讲道理2017-04-18 09:05:54
Gunakan mendengar pokok paparan untuk mendapatkan kawalan atau sifat yang sepadan:
//1 Hidupkan pemantauan pepohon
recycleView.getViewTreeObserver().addOnGlobalLayoutListener(New ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
//2. Selepas paparan dilukis, keluarkan item pertama
Lihat paparan = recyclerView.getChildAt(0);
//3.Pemantauan Log keluar
recyclerView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
//4. lakukan sesuatu dengan paparan item pertama...
}
});
ringa_lee2017-04-18 09:05:54
Adalah mungkin untuk menggunakan kaedah pemantauan pokok pandangan di tingkat atas. Gunakan getViewTreeObserver().addOnGlobalLayoutListener() untuk mendapatkan lebar atau ketinggian akhir View dan getViewTreeObserver().addOnDrawListener untuk memantau lukisan semula View Ini ialah kaedah biasa