【发布时间】:2014-01-19 16:57:27
【问题描述】:
我正在处理以下TextView:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/tabsContent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="3dp"
android:background="@drawable/rounded_edges"
android:gravity="bottom"
android:padding="8dp"
android:scrollHorizontally="false"
android:scrollbarStyle="insideOverlay"
android:scrollbars="vertical"
android:textColor="#FFFFFF"
android:textSize="11sp"
android:typeface="monospace" />
这个TextView 用于显示我从Socket 获得的大量数据,因此内容由背景Service 更新。问题是,在一定数量的文本之后,滚动条被启用,每次我在TextView 上附加一行时,滚动条开始显示并在每次向TextView 附加新行时淡出,因为它的重力设置为bottom,所以它会让用户感到厌烦。
我想要实现的是仅当用户手动向上或向下滚动时才启用滚动条的可见性,但到目前为止还没有找到任何东西来实现这一点。我试过的是:
在布局中将
android:scrollbars设置为none并实现onClickListener,因此它将启用scrolling至vertical并在发布时再次设置为none,但就像这样用户释放屏幕后触发事件,它不起作用。与
onLongClickListener相同,与在TextView上附加新行时的结果相同,布局设置为底部,因为gravity是bottom,所以实际上是这个监听器几乎没有触发。在
onDragListener上也是如此,我什至无法实现触发,所以我猜这不会被识别为拖动动作。这个类没有实现
onScrollListener。
在这一点上,我对如何实现这一点没有任何想法,因此感谢您提供任何建议。谢谢。
【问题讨论】:
标签: android android-layout android-scroll