Подтвердить что ты не робот

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

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

enter image description here при слайде вниз

enter image description here

enter image description here

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

enter image description here

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

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

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

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

4b9b3361

Ответ 1

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

enter image description here

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

Ответ 2

Вы не можете изменить исходный PERSPECTIVE_SHIFT_FACTOR_X, потому что это личное поле.

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

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

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

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