我在android中有一个带有RecyclerView的活动。我试图在OnCreate的RecyclerView上调用getChildAt(i),但它返回null。我在为测试创建的按钮单击侦听器中尝试了相同的操作,它返回项目正常。这必须是因为RecyclerView在OnCreate中此时尚未加载其子项,并且我需要在加载活动时访问其第一个子项。是否有任何形式的监听器可以在加载活动后检查,并且在加载活动时创建RecyclerView的子节点时没有按下手动按钮?我无法为活动或RecyclerView找到合适的监听器。
这是我的基本代码:
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
mainRec = (RecyclerView) findViewById(R.id.cardList);
mainRec.setHasFixedSize(true);
lm = new LayoutManager(this);
mainRec.setLayoutManager(lm);
mainRecAdap = new HappyAdapter(db.getListData(), this);
mainRec.setAdapter(mainRecAdap);
//this is where I am trying to call getChildAt
}
@Override
protected void onPause()
{
super.onPause();
restoreState();
}
@Override
protected void onResume()
{
super.onResume();
restoreState();
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
getMenuInflater().inflate(R.menu.menu_list, menu);
return true;
}
private void restoreState()
{
setToolbarColor(backgroundColour);
}
@Override
public void onBackPressed()
{
super.onBackPressed();
overridePendingTransition(R.anim.fade_forward, R.anim.right_slide_out);
}
@Override
protected int getLayoutResource()
{
return R.layout.activity_list;
}
由于
答案 0 :(得分:1)
为什么不使用RecyclerView
具有的特定附件监听器:
recyclerView.addOnChildAttachStateChangeListener(new RecyclerView
.OnChildAttachStateChangeListener() {
@Override
public void onChildViewAttachedToWindow(View view) {
}
@Override
public void onChildViewDetachedFromWindow(View view) {
}
});