我在 ScrollView 内的 TextView 中启用了垂直滚动(为了在水平滚动时将其他内容留在顶部) - 但是垂直滚动仅在 TextView 的数据中有链接时才有效。如果没有 url/email/etc,则垂直滚动不起作用。
当它起作用时,垂直滚动条也会报告错误的滚动位置——在视图中滚动 100% 后,它将达到屏幕的最大 5%。
这是有问题的 xml 布局,它给出了这种奇怪的行为,而newsreader_message是我希望能够正确滚动的那个:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/newsreader_subjectdate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:marqueeRepeatLimit="1"
android:scrollHorizontally="true"
android:text=""
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/newsreader_fromto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:marqueeRepeatLimit="1"
android:scrollHorizontally="true"
android:text=""
android:textAppearance="?android:attr/textAppearanceSmall" />
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/newsreader_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:autoLink="web|email"
android:contentDescription="News post content"
android:keepScreenOn="true"
android:paddingRight="10dp"
android:paddingTop="6dp"
android:scrollHorizontally="true"
android:scrollbars="horizontal|vertical"
android:text=""
android:textSize="11.5sp"
android:typeface="monospace" />
</ScrollView>
作为一个额外的细节,当垂直滚动被破坏时,选取框也不会滚动(并且选取框需要滚动)。