【Android-View】基于原生View的简单功能定制
16lz
2022-06-05
1. TextView
1.1 设置TextView可滚动且更新文字后自动滚动至最后一行
【方案】如下步骤
① 在TextView布局文件中给TextView加入如下属性
android:scrollbars="vertical" android:fadeScrollbars="false"
② 在Activity中的onCreate()方法中,使用setMovementMethod(MovementMethod movement)方法配置TextView的滚动方式。
TextView tv = (TextView) findViewById(R.id.tv_log);tv.setMovementMethod(ScrollingMovementMethod.getInstance());
③ 更新文字时,使用View.scrollTo(int x,int y)方法使其自动滚动到最后一行。
private void printLog(String log) { tv.append("\n" + log); // 计算偏移量 int offset = tv.getLayout().getLineTop(tv.getLineCount()) + tv.getCompoundPaddingTop() + tv.getCompoundPaddingBottom(); // 滚动到目标定位点 if (offset > tv.getHeight()) { tv.scrollTo(0, offset - tv.getHeight()); } }
【参考1】https://www.jianshu.com/p/01d9b4564908 # Android 如何实现带滚动条的TextView,在更新文字时自动滚动到最后一行?
【参考2】https://stackoverflow.com/questions/34248301/textview-getlinecountgetlineheight-getheight# # TextView getLineCount()*getLineHeight() != getHeight()
更多相关文章
- TextView中ellipsize属性
- Android的线程Handler实现
- Android应用程序组件Content Provider的共享数据更新通知机制分
- Android实现widget定时更新
- 新手android 开发 错误集锦(持续更新中)
- 【源码分享下载】每日更新之Android应用源码之仿微信5.2布局
- Android(安卓)Studio——Android(安卓)Studio更新升级方法
- Android(安卓)Studio启动时出现unable to access android sdk ad
- TextView跑马灯效果