TextView中可以设置一个ellipsize属性,作用是当文字长度超过textview宽度时的显示方式:

例如,字符串"abcedfg" 的各种现实效果:


android:ellipsize=”start”—–省略号显示在开头 "...edfg"
android:ellipsize=”end”——省略号显示在结尾  "abcdec..."
android:ellipsize=”middle”—-省略号显示在中间 "ab...fg"
android:ellipsize=”marquee”–以横向滚动方式显示(需获得当前焦点时)

 

对于使用marquee即滚动显示方式的,需要当前textview获得焦点才会滚动。所以有时可能因为实际需要,textview未获得焦点或者需要多个textview都同时滚动显示时,可以采用以下办法:


因为判断textview是否处于focused状态是通过它本身isFocused()方法,这样只要此方法返回为true时,即认为处于focused的状态,就可以滚动啦。

所以可以通过继承TextView类,并override isFocused()方法来控制是否滚动咯。

 

另外如果是组合View,外层layout需要加入以下属性来保证focus状态的传递:addStatesFromChildren="true"

更多相关文章

  1. Android之Broadcast Receiver的两种注册方式
  2. Android中程序的停止状态详细介绍
  3. Android 网络请求简单使用方式
  4. android 截取验证码的两种实现方式
  5. android(java)对网络状态(socket)判断的方法
  6. Android中程序与Service交互的方式
  7. Android入门(4) 布局、JUnit、日志与数据存储访问方式
  8. Textview的maxLines大于1行时,"android:ellipsize="end" 省略号失
  9. Android实现TextView中文字链接的4种方式介绍及代码

随机推荐

  1. Android(安卓)在桌面创建一个快捷方式
  2. android 网络异步加载数据进度条
  3. android之Notification的使用
  4. Android(安卓)Studio sync 失败解决方法
  5. Android(安卓)EditText 密码输入框可见性
  6. Android隐藏虚拟按键
  7. Android中ViewPage的使用
  8. android 闹钟定时任务 AlarmManager
  9. android照相及照片上传
  10. android > 模拟 硬件 按键 按下