// burada recyclerview bu yöntemBir ImageView yığının altında eklendiğinde RelativeLayout üst ImageView kaldırmak istiyorum ama bu bütün düzeni kaldırıyor
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
}
@Override
public void onScrolled(final RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
final int positionView = ((LinearLayoutManager) recyclerView.getLayoutManager()).findLastVisibleItemPosition();
if (dy > 0) {
if (positionView >= 3) {
final View view = recyclerView.getChildAt(3);
if (view != null && recyclerView.getChildAdapterPosition(view) == positionView) {
TranslateAnimation translateAnimation = new TranslateAnimation(0, 0, 200, 0);
translateAnimation.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
recyclerView.smoothScrollToPosition(positionView);
}
@Override
public void onAnimationEnd(Animation animation) {
view.clearAnimation();
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
translateAnimation.setDuration(350);
view.setAnimation(translateAnimation);
}
createStackImageView();
for (int i = stackView.getChildCount()-1; i >=1; i--) {
ResizeAnimation resizeAnimation = new ResizeAnimation(stackView.getChildAt(i));
resizeAnimation.setHeights(stackView.getChildAt(i).getHeight(), stackView.getChildAt(i - 1).getHeight());
resizeAnimation.setWidths(stackView.getChildAt(i).getWidth(), stackView.getChildAt(i - 1).getWidth());
resizeAnimation.setDuration(250);
stackView.getChildAt(i).startAnimation(resizeAnimation);
if(i==1){
stackView.removeView(stackView.getChildAt(i));
stackView.invalidate();
stackView.requestLayout();
}
}
stackView.invalidate();
}
} else {
}
}
});
// Ve olduğu onScrollEvent nerede i böylece bu ImageView RelativeLayout dipte en üst görüntü oluşturulur yığın dynamically.When sayısı vardır
private void createStackImageView() {
fourthStack = new ImageView(getActivity());
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams
(1, 1);
layoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL);
layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
fourthStack.setLayoutParams(layoutParams);
fourthStack.setScaleType(ImageView.ScaleType.CENTER_CROP);
Random rnd = new Random();
int color = Color.argb(255, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256));
fourthStack.setBackgroundColor(color);
fourthStack.requestLayout();
stackView.addView(fourthStack, layoutParams);
}
Şimdi benim asıl sorun RecyclerView i altındaki görüntüsü oluşturmak kaydırıldığında ise relativelayout bir ImageView oluşturmak gerekir yok olmayacak şekilde yok olacak bellek sorunu.Ama benim için ne olduğunu oluşturduğum tüm yığını kaldırıyor. Bunun neden olduğunu anlayamıyorum.
görünürlük gitti ve görünmez hem bu sorun ortaya çıkmayacak, ancak bellek –
aynı sorunu yaşıyorsanız boş bırakacaktır. – Sreyas
hayır aynı sorunu almıyorum ama bu kaybolan görüntüyü kaydırırken geri dönüştürücümün titremesine neden olan belleği boşaltmayacaksınız –