/ / Android: Как да получите ListView в режим на превъртане или не? - android, android-listview, scrollview

Android: Как да получите ListView в режим на превъртане или не? - android, android-listview, scrollview

Ако ми ListView няма в режим на превъртане (поради няколко елемента на екрана), тогава го искам android:stackFromBottom="false" но ако списъкът ми започна да се придвижва (достатъчно елементи за превъртане), тогава искам android:stackFromBottom="true" чрез моя код. Как мога да дойда? Надявам се, че ще ме вземете.

Отговори:

2 за отговор № 1

сравнение getLastVisiblePosition() с getCount() в Runnable, за да видите дали целият ListView се побира на екрана веднага щом бъде изчертан. Трябва също така да проверите дали последният видим ред съвпада изцяло на екрана.

Създаване на Runnable:

ListView listView;
Runnable fitsOnScreen = new Runnable() {
@Override
public void run() {
int last = listView.getLastVisiblePosition();
if(last == listView.getCount() - 1 && listView.getChildAt(last).getBottom() <= listView.getHeight()) {
// It fits!
}
else {
// It doesn"t fit...
}
}
};

в onCreate() на опашката на Runnable в Handler на ListView:

listView.post(fitsOnScreen);

0 за отговор № 2

Една OnScrollListener може да ви даде превъртане състояние на ListView, Състоянието на превъртане може да бъде FLING, IDLE или TOUCH_SCROLL. Във вашия случай използвайте следното (psuedo):

onScrollStateChanged(AbsListView view, int scrollState){
listView.setStackFromBottom(scrollState != OnScrollListener.SCROLL_STATE_IDLE);
}