У меня есть пользовательский макет с именем TinderStackLayout
, который имеет 3 дочерних вида.
Я запускаю функцию, которая добавляет больше подпредставлений в последнюю позицию и удаляет из первой позиции.
Мне нужен способ отслеживать ребенка, который в данный момент представлен.
Вот мой код для моего пользовательского макета стека -
public class TinderStackLayout extends FrameLayout {
//Constructors
public TinderStackLayout(Context context) {
super(context);
init();
}
public TinderStackLayout(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public TinderStackLayout(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
@Override
public void onDetachedFromWindow() {
super.onDetachedFromWindow();
}
// Helper Methods
private void init() {
setClipChildren(false);
}
public void addCard(TinderCardView tinderCardView, int addToPosition) {
View lastCardAdded = getChildAt(0);
if (lastCardAdded != null && lastCardAdded.equals(tinderCardView)) {
return;
}
ViewGroup.LayoutParams layoutParams;
layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
addView(tinderCardView, addToPosition, layoutParams);
// tinderCardView.animate()
// .x(0)
// .setInterpolator(new AnticipateOvershootInterpolator());
}
public TinderCardView getTopCardOnStack() {
return (TinderCardView) getChildAt(getChildCount() - 1);
}
}
Как вы можете видеть, я пытался сделать return (TinderCardView) getChildAt(getChildCount() - 1)
, но это неправильно, когда я добавляю больше подпредставлений, потому что я никогда не будуполучить более 2 карт таким образом.
Есть ли способ, которым я всегда могу узнать, какой ребенок в данный момент представлен в интерфейсе?