需求:用户在横向scroll-view中输入字符串(字符串从右向左),当超出宽度时,自动向左滚动,每输入一个字符都滚动到最右侧,使最新的字符显示出来。简单说就是使字符串从右向左输入。
问题:我的方案是设置scroll-left属性,在按键监听事件最后将值设置成9999,这样虽然实现了需求,但是反应很慢,每次按键差不多1少才显示上去,如果输入快点就卡死没反应了。
思考:这种方案肯定不完美,因为要频繁触发滚动事件,应该很消耗资源,但是又没想到更好的方案。求大神解决,感激不尽
需求:用户在横向scroll-view中输入字符串(字符串从右向左),当超出宽度时,自动向左滚动,每输入一个字符都滚动到最右侧,使最新的字符显示出来。简单说就是使字符串从右向左输入。
问题:我的方案是设置scroll-left属性,在按键监听事件最后将值设置成9999,这样虽然实现了需求,但是反应很慢,每次按键差不多1少才显示上去,如果输入快点就卡死没反应了。
思考:这种方案肯定不完美,因为要频繁触发滚动事件,应该很消耗资源,但是又没想到更好的方案。求大神解决,感激不尽
3 个回答
使用input不能解决吗?为啥使用scrollview呀
试试这样子
测试代码
这个需求类似于聊天窗口的信息展示,永远在底部,你这是永远在右侧,有一个巧妙的方法,就是布局的时候设置flex的row为反向的
flex-
direction
: row-reverse
然后再setData追加数据的时候不要想尾部添加,而是向头部添加,这样就起到负负得正的效果,数据追加要以数组形式
建议提供下代码片段 看看