android - TextView 中的滚动条

标签 android scrollbar

我只是不想使用ScrollView。所以我有一个启用垂直滚动条的 TextView 。

<TextView
    android:id="@+id/tv_service_ticketinfo_details"
    android:layout_width="fill_parent"
    android:layout_height="150dp"           
    android:textColor="@color/black"
    android:autoLink="web"
    android:scrollbars="vertical"
    android:text="empty"
    android:background="@drawable/custom_shape_grey">
</TextView>

问题是,滚动条只能滚动包含 Web 链接的文本。对于其他文本,我看到滚动条,但无法滚动。

我无法解释。你呢?

更新:

还有一件奇怪的事情: 一旦我设置了带链接的文本,那么我就可以将其替换为另一个不带链接的文本,并且 textView 保持可滚动

最佳答案

所以我认为问题是 TextViews 不会自动滚动,只是因为你设置了 android:scrollbars。您必须设置 ScrollingMovementMethod。

但是,当您使用autoLink并找到链接时,android框架将为您设置MovementMethod。这就是行为不同的原因。

有两种适合我的解决方案。

设置文本后,强制将移动方法设置为支持链接和滚动的方法。

final TextView output = (TextView) findViewById(R.id.output);
output.setText(content);
// ensure that text will scroll with or without linked text
output.setMovementMethod(LinkMovementMethod.getInstance());

或者在将文本添加到 TextView 之前设置移动方法(假设为纯文本)。如果autoLink检测到链接,它会改变移动方法本身。

final TextView output = (TextView) findViewById(R.id.t_output);
// ensure that text defaults to scrollable
output.setMovementMethod(ScrollingMovementMethod.getInstance());
output.setText(content);

(仅供引用:我正在使用 android:autoLink="all")

关于android - TextView 中的滚动条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4489843/

相关文章:

javascript - 使用 -webkit-overflow-scrolling : touch 时更改 HTML 滚动条颜色

jquery - 除了 Firefox 之外的所有浏览器中的 Mouseup 错误?

javascript - 如何为水平滚动列表设置滚动条样式?

jquery - CSS中的滚动条定位

android - 为什么 Toast.makeText 而不是新的 Toast

android - 如何检测 Android 设备上的硬/软后退按钮?

java - 简单的 XML 解析 XML 到列表

java - Android Studio 外部 jar 错误

html - 如何在html正文中的单独div中制作滚动条

java - Android 项目中的 .java 文件的 Ensime