У меня есть фрагмент позволяет назвать его EventFragment
, и у меня есть RecyclerView.Adapter
называется EventAdapter
, внутри что адаптер класса viewholder называется EventViewHolder
. Я хочу получить доступ к методу анимации в классе зрителя из Fragment
.доступа Внутренний класс Метод (от Viewholder адаптер) из фрагмента
Как бы это осуществить? Я решил определить другой интерфейс для этого.
Это то, что я до сих пор:
OnAnimationListener
public interface OnAnimationListener {
void onAnimation();
}
адаптер
public EventAdapter extends RecyclerView.Adapter<RecycleView.ViewHolder> {
// Boilerplate initialization stuff here
public class EventViewHolder extends RecyclerView.ViewHolder implements OnAnimationListener {
// Initialization code
@Override
public void onAnimation() {
// Do an animation
}
}
}
EventFragment
public class EventFragment extends Fragment {
// Boilerplate initialization code
}
Я имею в виду, я должен реализовать интерфейс внутри Fragment
так:
public class EventFragment extends Fragment implements onAnimationListener {
private void initAdapter() {
mAdapter.setOnAnimationListener(this);
}
@Override
public void onAnimation(Data data) {
// pass any data
}
}
Тогда я вроде застрял в этой точке. Обычно вы назовете это, как только прослушиватель пройдет через:
OnAnimationListener.onAnimation(...)
Но это не имеет смысла. Поток код выглядит следующим образом:
EventFragment --> Adapter --> ViewHolder
Мне нужно реализовать следующий поток кода:
EventFragment (get access to specific viewholder and do animation) <--> Viewholder
Как я должен это сделать? Может быть, вместо этого перейдем от интерфейса «Просмотр» к «Фрагменту» и позвоните по номеру mOnAnimationListener.onAnimation()
из фрагмента?
Я хочу иметь конкретное управление, когда анимация происходит на EventViewHolder
, и я хочу иметь этот элемент управления от EventFragment
, как я должен заниматься этим?