在一个片段中搜索如何访问recyclerview的子级后,我发现以下代码:
recyclerViewMenuItems.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
new Handler().postDelayed(() -> addNewVenueItem = recyclerViewMenuItems.findViewHolderForLayoutPosition(2).itemView.findViewById(R.id.textViewMenuItem), 50);
recyclerViewMenuItems.getViewTreeObserver().removeOnGlobalLayoutListener(this);
}
});
所以,这部分代码可以正常工作,但是! 问题是当我想找到另一个孩子时,我使用以下代码:
recyclerViewMenuItems.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
new Handler().postDelayed(() -> addNewVenueItem = recyclerViewMenuItems.findViewHolderForLayoutPosition(2).itemView.findViewById(R.id.textViewMenuItem), 50);
recyclerViewMenuItems.getViewTreeObserver().removeOnGlobalLayoutListener(this);
new Handler().postDelayed(() -> storeItem = recyclerViewMenuItems.findViewHolderForLayoutPosition(7).itemView.findViewById(R.id.textViewMenuItem), 50);
recyclerViewMenuItems.getViewTreeObserver().removeOnGlobalLayoutListener(this);
}
});
在android api级别26中,一切正常,但是在第二个找到它的api 19设备storeItem
中,返回null!
我如何访问recyclerview的子视图(不仅在子视图上,还需要多个子视图)