2015-06-21 5 views
0

У меня есть активность в android с RecyclerView. Я пытаюсь вызвать getChildAt (i) в RecyclerView в OnCreate, но он возвращает 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

Там много способов. Загрузите свой код и напишите несколько вариантов. – EE66

+0

спасибо, я добавил свой базовый код к вопросу – kabeersvohra

ответ

1

Почему бы вам не использовать конкретный присоединять слушателя, что RecyclerView имеет:

recyclerView.addOnChildAttachStateChangeListener(new RecyclerView 
       .OnChildAttachStateChangeListener() { 
      @Override 
      public void onChildViewAttachedToWindow(View view) { 

      } 

      @Override 
      public void onChildViewDetachedFromWindow(View view) { 

      } 
     }); 
+0

Я понятия не имею, почему, но эта функция не подходит в андроид-студии! Я проверил, и все импортные данные верны, и я уверен, что переменная является recyclerview, но она не работает – kabeersvohra

+0

, если у кого-то такая же ошибка, этот слушатель был добавлен только в версию 22.2.0, если у вас 22.0.0 в вашем построить град не получится – kabeersvohra

 Смежные вопросы

  • Нет связанных вопросов^_^