Как реализовать настроенное представление стека в Android?

Я искал в Интернете, но я не мог найти хорошего объяснения или совета. В принципе, я хочу реализовать эту функциональность.

Введите описание изображения здесь При слайд вниз

Введите описание изображения здесь

Введите описание изображения здесь

Я использовал класс StackView, и все, что я получаю, это «диагональный» стек

Введите описание изображения здесь

Я хочу, чтобы взгляды были один за другим, как на рисунках выше.

Здесь задается аналогичный вопрос -> Android настраивает stackview , но я не мог найти удовлетворительных ответов.

Я прочитал код для StackView, как было предложено, но, честно говоря, я не знаю, как бы настроить его, чтобы получить то, что я хочу. Когда я изменяю значение PERSPECTIVE_SHIFT_FACTOR_X или PERSPECTIVE_SHIFT_FACTOR_Y, ничего не меняется, и я получаю тот же «диагональный вид». Я что-то упускаю?

Заранее благодарим за ответы.

Solutions Collecting From Web of "Как реализовать настроенное представление стека в Android?"

Не стесняйтесь использовать мою библиотеку здесь .

Введите описание изображения здесь

Он делает именно то, что вы хотите, и основан на ViewPager поэтому вы можете использовать его только с типичным PagerAdapter по вашему выбору.

Вы не можете изменить оригинальный PERSPECTIVE_SHIFT_FACTOR_X потому что это личное поле.

StackView использует много классов, которые имеют видимость пакета и могут использоваться только в пакете android.widget .

Кроме того, некоторые из этих классов предварительно скомпилированы и источник нигде не найден, поэтому вы не можете просто скопировать их и создать свой собственный StackView с нуля.

Вы можете сделать представления в столбце, переопределив onLayout , но как только вы их onLayout , их позиции будут заменены на значение по умолчанию. К сожалению, анимация вида выполняется в частных методах StackView поэтому вы ничего не можете с этим поделать.

Вам лучше создать свой собственный класс, который сделает это, и вы можете ссылаться на код, используемый в источнике StackView . Создание такого класса может быть большой работой, и это определенно не в рамках одного вопроса.