剧情:
前几天参加了去哪儿网的泛前段的分享会,谈的大多是去哪儿网对FaceBook的ReactNative的优化。谈到ListView的优化问题,大致意思是reactnative在不知道控件高度的情况下不容易直接根据Position找到控件的位置。不嫌事大的小伙伴问了个问题:
请问原声的Android是如何根据Position找到ListView的位置的呢?
答曰:
原声是可以直接根据位置找到的。
全场:嗯嗯嗯嗯~。
宝宝第一个不服,我就不感觉原声有这么厉害。
看了下ListView的方法,大概大神们说的是这个方法。
listview.smoothScrollToPosition(int position);
第一层的smoothScrollByOffset(int offset)仅仅是super了一下父类的方法。
public void smoothScrollByOffset(int offset) {
super.smoothScrollByOffset(offset);
}
里面是什么呢?
/**
* Allows RemoteViews to scroll relatively to a position.
*/
void smoothScrollByOffset(int position) {
int index = -1;
if (position < 0) {
index = getFirstVisiblePosition();//获取第一个可见的位置
} else