Android 如何实现带滚动条的TextView,在更新文字时自动滚动到最后一行?
1、在布局文件中放置一个TextView,给它添加scrollbars和fadeScrollbars两个属性。
如下设置:滚动条为垂直滚动条,并且一直可见(当TextView中的文字行数超过页面能显示的范围之后)。
android:scrollbars="vertical"
android:fadeScrollbars="false"
2、在Activity中的onCreate()方法中,使用setMovementMethod(MovementMethod movement)方法配置TextView的滚动方式。
1 final TextView logView=(TextView)findViewById(R.id.logView); 2 logView.setMovementMethod(ScrollingMovementMethod.getInstance());
3、更新文字时,使用View的scrollTo(int x,int y)方法使其自动滚动到最后一行。
1 void refreshLogView(String msg){ 2 logView.append(msg); 3 int offset=logView.getLineCount()*logView.getLineHeight(); 4 if(offset>logView.getHeight()){ 5 logView.scrollTo(0,offset-logView.getHeight()); 6 } 7 }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步