如何保持ScrollView滚动到底部?

如何保持ScrollView滚动到底部?,第1张

概述在我添加TextViews的过程中,我有一个带有LinearLayout的ScrollView.但我总是希望最后添加的TextView可见,所以当添加TextView时,我需要ScrollView滚动到Bottom.我不知道为什么,但是当我在添加textview之后调用scrollto(),scrollby()或fullScroll()时,它只会在最后一个之前滚动到textview. 你知道更好的 在我添加TextVIEws的过程中,我有一个带有linearLayout的ScrollVIEw.但我总是希望最后添加的TextVIEw可见,所以当添加TextVIEw时,我需要ScrollVIEw滚动到Bottom.我不知道为什么,但是当我在添加textvIEw之后调用scrollto(),scrollby()或fullScroll()时,它只会在最后一个之前滚动到textvIEw.

你知道更好的方法吗?

非常感谢!

码:

我有一个button,它调用了这个函数:

private voID addRound() {    // Todo auto-generated method stub    TextVIEw newRound = new TextVIEw(Stopwatch.this);    newRound.setText("" + counter + ". - " + timerText());    newRound.setTextSize(20);    newRound.setGravity(Gravity.CENTER);    linlay.addVIEw(newRound);    counter++;}

调用此函数后,我调用fullScroll().

addRound();sv.fullScroll(VIEw.FOCUS_DOWN);

sv是我的ScrollVIEw,linlay是scrollvIEw中的linearlayout.

解决方法 我认为这是因为当您调用sv.scrollFull(VIEw.FOCUS_DOWN)时ScrollVIEw没有完全更新;尝试以下(替换您的第二个代码示例):
addRound();sv.post(new Runnable() {   @OverrIDe   public voID run() {     sv.fullScroll(VIEw.FOCUS_DOWN);   }});

如果上述方法不起作用,请尝试以下方法(这不是一种优雅的方式,但可能会有效):

addRound();sv.postDelayed(new Runnable() {   @OverrIDe   public voID run() {     sv.fullScroll(VIEw.FOCUS_DOWN);   }},100);

希望这个有效!

总结

以上是内存溢出为你收集整理的如何保持ScrollView滚动到底部?全部内容,希望文章能够帮你解决如何保持ScrollView滚动到底部?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1148949.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存