Android 用TextView实现一个日志显示

笔者在做一个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。

最后效果:

Android 用TextView实现一个日志显示_第1张图片
TextView.jpg

End

笔者的Github Blog,希望各位大大提意见,点个star,谢谢
传送门:WusyBlog

求互粉互赞,互赞所有文章可以私聊我。哈哈,希望我们的原创文章能让更多朋友看到,一起变强。

笔者新开通了微信公众号——饮水思源|wusy 计划持续运营,每日为您分享Android干货、原创文章。微信扫描下方的二维码关注我,开发学习路上不迷路。谢谢各位


饮水思源|wusy.jpg

你可能感兴趣的:(Android 用TextView实现一个日志显示)