【问题标题】:TextView without partially drawn lines没有部分绘制线条的 TextView
【发布时间】:2011-06-19 18:07:55
【问题描述】:

是否有可能在Android中创建一个可以滚动多行文本的TextView,但除非它可以完全绘制在它的高度,否则不会绘制第一行或最后一行文本?我意识到滚动时它可能看起来很奇怪,但我不想看到字符的顶部或底部被截断。

建议的解决方案可能涉及修改 android 平台。

【问题讨论】:

  • 你想让 textView 逐行滚动,不流畅...?
  • 是的,逐行或逐页,但没有平滑滚动。

标签: android android-widget textview


【解决方案1】:

我不知道你说的修改android平台是什么意思,但是如果你想要一个全新的行为,对你自己的TextView进行编码(或扩展android TextView以改变滚动)没有任何限制。

如果您真的想这样做,您可以更改 Touch/Scrolll 行为以直接滚动到下一个/上一个可见行尝试更改 TextView Scoller(setScoller( ) 方法)。如果这不起作用,您将不得不自己编写代码(基本上通过textview.getLayout().getLineTop(line number) 获取行位置并将屏幕顶部定位到该点)。

您的唯一限制是当您需要更改嵌入“内核”中的某些内容时(例如,来自 MediaPlayer 的媒体协议)。

查看marquee example

【讨论】:

    【解决方案2】:

    看看您是否可以将此类http://developer.android.com/reference/android/text/method/ScrollingMovementMethod.html 与滚动条一起使用。您的 textView 高度需要是文本行高度的倍数。

    【讨论】:

      【解决方案3】:

      太棒了,我建议你使用WheelView by Yuri

      如果您选择了背景、高度和宽度的良好组合;你会得到你想要的效果。

      【讨论】:

        【解决方案4】:

        Android Terminal Emulator 项目包含一个带有 EmulatorView 类的库,该类的行为几乎符合我的要求,并且是开源的:https://github.com/jackpal/Android-Terminal-Emulator

        虽然它包含大量用于终端内容的额外代码,但如有必要,可能会被删除。但是我必须假设它只支持等宽字体,这使得它不太有用。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-11-06
          • 1970-01-01
          • 2017-09-28
          • 1970-01-01
          • 2017-06-07
          • 1970-01-01
          • 2021-03-13
          • 1970-01-01
          相关资源
          最近更新 更多