Android中用TextView显示大量文字的方法
最近学习Android中,试着实现一个简单的显示新闻Demo的时候,遇到了一个问题:一条新闻的内容文字很多,放在TextView上面超出屏幕了,怎么破?
查了一下资料,找到了两种方法实现:
1. 只用TextView,用TextView自带的滚动条完成全部展示,在布局xml文件中,TextView的属性需要设置android:scrollbars和android:singleLine,如下:
<TextView
android:id="@+id/news_item_content_text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:lineSpacingExtra="2dp"
android:scrollbars="vertical"
android:singleLine="false"
android:text="this is content, blablabla..."
android:textColor="@color/news_content_color" />
主要是黄色的;然后在Activity的onCreate或者FragMent的onViewCreated方法中添加代码如下:
TextView contentTV = (TextView) view.findViewById(R.id.news_item_content_text_view);
contentTV.setMovementMethod(ScrollingMovementMethod.getInstance());
到这里就基本OK了,不过因为在我的Demo中,是在一个Activity中显示了两个Fragment,左边的是新闻列表,右边展示新闻详情,然后出现了一个问题:显示了一个比较长的新闻,然后把新闻内容拖到最后,在切换新闻条目后,展示新闻内容的TextView无内容显示,需要触摸一下TextView区域才能显示,处理办法:
在每次切换新闻后,都在TextView的setText方法后面添加一个TextView的滚动条滚动的方法,如下:
TextView contentTV = (TextView) view.findViewById(R.id.news_item_content_text_view);
contentTV.setText(content);
contentTV.scrollTo(0, 0);//滚动条滚动到0位置
这样子就OK了。
2. 布局的时候把TextView放在一个ScrollView里面,这样子就更简单了,不需要任何代码处理。
<ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"> <TextView
android:id="@+id/news_item_content_text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:lineSpacingExtra="2dp"
android:text="this is content, blablabla..."
android:textColor="@color/news_content_color" />
</ScrollView>
当TextView文字内容很长的时候,ScrollView自动会显示滚动条,不需要我们再去写代码实现了。
Android中用TextView显示大量文字的方法的更多相关文章
- 设置TextView显示的文字可以复制
设置TextView显示的文字可以复制 效果图 在xml中设置 <TextView android:layout_width="wrap_content" android:l ...
- Android中Textview显示Html,图文混排,支持图片点击放大
本文首发于网易云社区 对于呈现Html文本来说,Android提供的Webview控件可以得到很好的效果,但使用Webview控件的弊端是效率相对比较低,对于呈现简单的html文本的话,杀鸡不必使用牛 ...
- Android设置TextView显示一行或多行
在listView的item中或者是特殊的业务需求中,会要求TextView的内容不完全显示,只有通过一个指定的操作后才显示所有的,比如说一个按钮或者是其它的什么控件. 要想实现这个效果并不难,只要控 ...
- Android获取TextView显示的字符串宽度
工作上有业务需要判断textview是否换行,我的做法是判断textview要显示的字符串的宽度是否超过我设定的宽度,若超过则会执行换行. 项目中的其他地方也有这样的需求,故直接使用了那一块的代码.如 ...
- Android 获取TextView 显示的字符串宽度
工作上有业务需要判断textview是否换行,我的做法是判断textview要显示的字符串的宽度是否超过我设定的宽度,若超过则会执行换行. 项目中的其他地方也有这样的需求,故直接使用了那一块的代码.如 ...
- 关于Android中TextView显示多个空格
一.直接填写文字,输入多少,显示多少,如下: android:text="AAA AAA" ————————>显示:AAA AAA 二.通过设置str ...
- Android中TextView中的文字设置为不同颜色
questionDesTextView=(TextView)findViewById(R.id.question_des); SpannableStringBuilder builder = new ...
- Android开发:TextView添加超链接的简便方法
TextView中加入超链接的方式很多,但下面的方式应该的最简便合理的 strings.xml中定义字串 <string name="blog"><a href= ...
- Android动态控制状态栏显示和隐藏
记得之前有朋友在留言里让我写一篇关于沉浸式状态栏的文章,正巧我确实有这个打算,那么本篇就给大家带来一次沉浸式状态栏的微技巧讲解. 其实说到沉浸式状态栏这个名字我也是感到很无奈,真不知道这种叫法是谁先发 ...
随机推荐
- 面向对象继承 (for in 原型链查找属性)
window.onload=function(){ new Preson('liujian','男').show(); new Work('liujian','男','工人').show(); new ...
- 《SQL必知必会》学习笔记(二)
咱们接着上一篇的内容继续.这一篇主要回顾子查询,联合查询,复制表这三类内容. 上一部分基本上都是简单的Select查询,即从单个数据库表中检索数据的单条语句,但是实际应用中的业务逻辑往往会非常复杂,所 ...
- 【APP设计利器】Sketch 41 Mac中文破解版(含汉化插件)
Sketch是一款拥有美观界面和强大功能适用于所有设计师的专业矢量绘图工具.它旨在为美术设计师创造出一款更优秀的作品,不是复制品,而是提升品.Sketch简约的设计是基于无限的规模和层次的绘图空间,免 ...
- unity小地图技术方案总结
技术方案 一:从顶视图获取实时小地图(优点实现快容易对地图进行放大缩小操作而且地图,缺点是不好对地图做出修改,只能在顶部加个另外的相机层来遮盖) 1.创建Redertexture并改名为smallma ...
- zabbix3 设置邮件报警(五)
Zabbix邮件报警配置 一.安装sendmail或者postfix(安装一种即可) yum install sendmail #安装 service sendmail start #启动 chkco ...
- Python
语法 #!/usr/bin/python 注释:# 编码:# -*- coding: UTF-8 -*- 缩进 运算符 算数运算符 + 加 - 两个对象相加 a + b 输出结果 30 - 减 - 得 ...
- Could not find or load main class org.gradle.wrapper.GradleWrapperMain解决办法
解决办法: gradlew is the gradle wrapper executable - batch script on windows and shell script elsewhere. ...
- Find Out What Your Entity Framework Query Is Really Doing
Assuming that you're using Entity Framework 6, you already have a logging tool that can give you som ...
- Android常用组件之ListView
使用ListAdapter是ListView的适配器. 使用ListView.setAdapter()方法来设置ListView的适配器. 简单的使用 adapter = new ArrayAdapt ...
- VirtualBox注册Com对象失败解决方法
(1)用CMD命令进入VirtualBox安装目录 (2)在VirtualBox目录下输入命令VBoxSVC /ReRegServer并执行 (3)在VirtualBox目录下输入命令regsvr32 ...