Я пытаюсь сдвинуть вверх / вниз представление, основанное на событии касания пользователя, например на нижнем листе.Он должен двигаться вниз, если вид перетаскивается ниже 50% от общей высоты контейнера.Точно так же это должно также подняться.Высота вида должна быть изменена в зависимости от события перетаскивания.Я также прилагаю пример видео для лучшего понимания.
Ниже приведен код, который я пробовал
parentView.setOnTouchListener(new OnSwipeTouchListener(mContext) {
@Override
public void onSwipeUp() {
super.onSwipeUp();
if (!isUp) {
DisplayMetrics displayMetrics = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
getHeightWidth();
onSlideViewButtonClick(height, card1);
pausePlayer();
storiesProgressView.pause();
// Changing button image to play button
iv_play_pause.setImageResource(R.drawable.play);
isPlayBeforeGlossaryOpen = isPlaying;
isPlaying = false;
isPaused = true;
}
}
@Override
public void onSwipeDown() {
super.onSwipeDown();
if (getFragmentManager().getBackStackEntryCount() != 0) {
manager.save("backFromPlayer", true);
getFragmentManager().popBackStackImmediate();
hints.setOverlayImage("");
}
}
});
public void onSlideViewButtonClick() {
if (isUp) {
CommonUtilities.slideDown(slidingView, changedHeight);
// up_arrow.setVisibility(View.VISIBLE);
} else {
CommonUtilities.slideUp(slidingView, changedHeight);
// up_arrow.setVisibility(View.GONE);
}
isUp = !isUp;
}
public static void slideUp(View view, int height) {
view.setVisibility(View.VISIBLE);
TranslateAnimation animate = new TranslateAnimation(
0.0f, // fromXDelta
0.0f, // toXDelta
height / 2, // fromYDelta
0.0f); // toYDelta
animate.setDuration(500);
animate.setFillAfter(true);
view.startAnimation(animate);
}
public static void slideDown(View view, int height) {
TranslateAnimation animate = new TranslateAnimation(
0.0f, // fromXDelta
0.0f, // toXDelta
0.0f, // fromYDelta
height / 2); // toYDelta
animate.setDuration(1000);
// animate.setFillAfter(true);
animate.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
animation.setFillAfter(false);
view.setClickable(false);
view.setVisibility(View.GONE);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
view.startAnimation(animate);
}
В настоящее время это только проведите вверх /вниз, но не перетаскивает вид вверх и вниз.