Я пытаюсь создать тип отображения Поворотный этой библиотеки ( iCarousel iOS ) с ViewPager.TransformPage
, и у меня возникают проблемы со свойством translationX
моих представлений.У меня есть 3 карты, и я хочу, чтобы они вели себя как карусели:
Это мой код:
@Override
public void transformPage(@NonNull View view, float realPosition) {
// ------------------scale---------------------------
float scaleFactor = 1 - 0.423f * Math.abs(realPosition);
view.setScaleX(scaleFactor);
view.setScaleY(scaleFactor);
// --------------------Z-------------------------
float zFactor = 1f - 0.35f * Math.abs(realPosition);
view.setTranslationZ(zFactor);
// --------------------X-------------------------
/**
* -0.3<=realPosition<=0.3 => x=realPosition (done)
*/
if (-.3 <= realPosition && realPosition <= 0.3) {
view.setTranslationX(realPosition);
}
float xFactor;
if (realPosition < -0.3) {
xFactor = 0.6f + realPosition;
view.setTranslationX(xFactor * 300);
}
if (realPosition > 0.3) {
xFactor = 0.6f - realPosition;
view.setTranslationX(xFactor * 300);
}
}
Я смог реализоватьtranslationZ
свойство, но translationX
довольно запутанно, потому что realPosition
само по себе является x
свойством представлений.
ViewPager">.
Проблема в том, что когда я пролистываю следующую карточку, остальные складываются сбоку, я хочу, чтобы они двигались какэллипс, и при наведении они не должны сталкиваться друг с другом.Возможно ли реализовать это поведение в ViewPager
PageTransformer
?Если так, как я могу сделать свойство X правильным?Кроме того, возможно ли сделать бесконечную прокрутку с 3 элементами с помощью PageTransformer
?