需要展示最新数据的listview,不要用setSelection或者scrollTo/scrollBy方法滚动到底部。 难点有2:
1.渲染结束没有回调,执行这些方法的延迟时间难以估计。
2.如果用户在listview执行这些方法前主动滑动,容易报数组越界的错误。
解决方法:
1.如果要在列表渲染之后自动滚动到底部,设置stackFromBottom="true"。例如推荐页面。
2.如果要在数据源变化时自动滚动到底部,设置transcriptMode。
transcriptMode = "alwaysScroll":如果数据源变化,就会滚动到底部。
transcriptMode = "normal":如果数据源变化,且最后一项可见,就会滚动到底部。例如私信页面。
默认transcriptMode = "disabled",不会自动滚动。