笔者在做一个Demo,突发奇想希望能够直观的在Demo上打印日志信息,使得非开发人员也能简单的过滤这些信息。直接写了个TextView然后将日志往上添加。就需要解决两个问题:
1.TextView在超过最大行数时时不会自动滚动的需要添加滚动条:
tv_debug.movementMethod = ScrollingMovementMethod.getInstance()
2.引入滚动条后,当超过最大行数,再添加内容,可以滚动,但是我们是希望他自动滚动到最新行的,这个功能需要自己实现:fun refreshLogView(msg:String){ runOnUiThread { tv_debug.append(msg) var offset=tv_debug.lineCount*tv_debug.lineHeight if(offset>tv_debug.height){ tv_debug.scrollTo(0,offset-tv_debug.height+tv_debug.lineHeight*2) } } }
runOnUiThread{}
是因为笔者在融云的接受消息中引入了改方法,导致在其他线程调用,会Excepution。
最后效果:
End
笔者的Github Blog,希望各位大大提意见,点个star,谢谢
传送门:WusyBlog求互粉互赞,互赞所有文章可以私聊我。哈哈,希望我们的原创文章能让更多朋友看到,一起变强。
笔者新开通了微信公众号——饮水思源|wusy 计划持续运营,每日为您分享Android干货、原创文章。微信扫描下方的二维码关注我,开发学习路上不迷路。谢谢各位