1

我在 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>

作为一个额外的细节,当垂直滚动被破坏时,选取框也不会滚动(并且选取框需要滚动)。

4

2 回答 2

0

将 textview 的 layout_width 更改为“fill_parent”并尝试一次

于 2012-04-16T03:39:44.360 回答
0

ScrollViews 布局应该是 wrap_content 。另一种选择是让滚动视图进行滚动,文本视图填充空间,如下所示

<ScrollView     android:id="@+id/scrollView1"    
 android:layout_width="wrap_content"    
 android:layout_height="wrap_content" 
android:scrollHorizontally="true"         
android:scrollbars="horizontal|vertical" 
android:fillViewport="true" >      
    <TextView         
android:id="@+id/newsreader_message"         
android:layout_width=""fill_parent"        
 android:layout_height="fill_parent"         
android:autoLink="web|email"         
android:contentDesciption="News post content"        
 android:keepScreenOn="true"         
android:paddingRight="10dp"         
android:paddingTop="6dp"                
  android:text=""        
 android:textSize="11.5sp"        
 android:typeface="monospace"  
android:layout_weight="1.0" /> 
</ScrollView> 
于 2012-04-16T03:58:58.210 回答