ExpandableListView не может автоматически прокручивать - PullRequest
1 голос
/ 27 марта 2012

Я боролся с этой проблемой, высмеиваю количество времени сейчас. У меня есть 5 расширяемых списков, которые содержат информацию для каждого дня недели, и я могу пролистывать между ними. Все работает просто отлично, за исключением того, что когда я начинаю занятие, я хочу, чтобы текущее представление списка автоматически прокручивалось вниз (не пользователем) до текущего дня. И с этим НИЧЕГО не происходит.

SSCCE:

public void Test()
            {

                for (int i = 0; i < this.numberOfWeeks; i++)
                {
                     // Relative layout to represent the current visible area
                     RelativeLayout screen = new RelativeLayout(this);

                     //LayoutParameters for the screen, fills the whole screen
                     RelativeLayout.LayoutParams newParams = new RelativeLayout.LayoutParams(
                     RelativeLayout.LayoutParams.FillParent, RelativeLayout.LayoutParams.FillParent);
                     screen.Id = 1000;
                     screen.LayoutParameters = newParams;


                     //An ExpandableListView is created with some parameters not important for this example
                     ExpandableListView newEListView = this.CreateExpandableListView( //..params..// )

                     screen.AddView(newEListView);

                     // Set this newEListView to the array of expandablelistviews
                     this.expandableListViews[i] = newEListView;
                }

                // Some more stuff is done, and finally when data is loaded and everything shows up just fine..
                // Lets make it automatically scroll down to the current day!

                // This does nothing
                this.expandableListViews[3].SetSelection(4); // 4 is current day

                // Same here
                this.expandableListViews[3].SetSelectionFromTop(4, 200);

            }

Стоит упомянуть, что ручная прокрутка работает просто отлично ..

Ответы [ 2 ]

0 голосов
/ 25 августа 2015

Попробуйте метод setSelectedGroup.

0 голосов
/ 27 марта 2012

SetSelection не работает таким образом, альтернативой тому, что вы можете попробовать, является

mexpandableList.smoothScrollToPosition(groupPosition);

и, если хотите, установите цвет фона для выбранной строки, чтобы она выглядела выделенной.

...