Расширяемое listview setselectionfromTop с анимацией и дополнением

Я включил анимацию (развернуть и скомпилировать) по умолчанию для раскрывающегося списка по умолчанию android'd, используя этот https://github.com/idunnololz/AnimatedExpandableListView/blob/master/src/com/idunnololz/widgets/AnimatedExpandableListView.java.

Однако одно ограничение, с которым я столкнулся, - это перемещение текущего расширенного клика вверх.

Я пробовал setSelectionFromTop(groupPosition, 0)

Вот вопрос:
 - Как добавить анимацию, чтобы довести ее до вершины?
 - Как довести его до вершины до определенной высоты. Скажем, ниже 10 пикселей сверху.

Любые указатели будут потрясающими.

Примечание. Решение должно работать от sdk 14 и выше.

Ответ 1

Это, безусловно, работает с библиотекой, которую вы использовали, я устал от своей собственной, дайте мне знать, что вам нужен образец.

long packedPosition = mListView.getPackedPositionForGroup(groupPosition);

final long flatpostion = mListView.getFlatListPosition(packedPosition);



expandableListView.expandGroupWithAnimation(groupPosition);



new Handler().postDelayed(new Runnable() {

    @Override

    public void run() {

        getActivity().runOnUiThread(new Runnable() {

            @Override

            public void run() {

                mListView.smoothScrollToPositionFromTop((int) flatpostion, HomeActivity.LIST_HEADER_HEIGHT, 200);

            }

        });

    }

}, 300);

Ответ 2

Любые указатели будут потрясающими.

Вы можете использовать android-advancedrecyclerview. Представление recycler - мощный виджет с множеством функций, но для вашего вопроса вы можете взглянуть на MyExpandableItemAdapter.java.

  • Как добавить анимацию в верхнюю часть?

public void scrollToPosition (int position)

public void smoothScrollToPosition (int position)

  • Как довести его до вершины до определенной высоты. Давайте скажем ниже 10 пикселей сверху.

public void scrollBy (int x, int y)

public void smoothScrollBy (int dx, int dy)

Ответ 3

  • Вы можете использовать метод ListView setSelection (int position) для прокрутки до строки.
  • Вы можете использовать ListView smoothScrollToPosition (int position) для перехода к определенному местоположению в списке.