【问题标题】:Textview scrolling not workingTextview滚动不起作用
【发布时间】:2023-04-05 00:36:01
【问题描述】:

我想垂直上下滚动文本,以防出现在 textview 中的文本比空间长。 但是,我测试的以下方法不起作用。

1 - tv1.setMovementMethod(new ScrollingMovementMethod()); 此外,在使用此方法时,对onFling() 方法的调用停止工作。

2 - 在布局 XML 中使用 <ScrollView>。 另外,使用此方法时,对onFling() 方法的调用停止工作。

<ScrollView
android:id="@+id/SCROLLER_ID"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical"
android:fillViewport="true">

    <TextView
    android:id="@+id/TEXT_STATUS_ID"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1.0"/>

</ScrollView>

我在布局 XML 中的 TextView 如下。

<TextView
    android:id="@+id/textView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="2.26"
    android:background="@drawable/green"
    android:gravity="center"
    android:text="Large Text"
    android:textAppearance="?android:attr/textAppearanceLarge" />

【问题讨论】:

    标签: android xml layout scroll textview


    【解决方案1】:

    您不能在ScrollView 中包含可滚动的View,例如TextViewListView。 因此,在普通布局中使用您的简单 TextView 并向其中添加 android:scrollbars 属性。

    <TextView
        android:id="@+id/textView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:lines="3"
        android:scrollbars="vertical"
        android:scrollbarStyle="insideOverlay"
        android:fadeScrollbars="true"
        android:fadingEdge="vertical" />
    

    Activity 一侧,您必须写如下内容:

    tv1.setMovementMethod(new ScrollingMovementMethod());
    

    (与您在第一点描述的基本相同)

    【讨论】:

    • 嗨@yugidroid,我重试了,它没有用。一旦我应用 tv1.setMovementMethod(new ScrollingMovementMethod());我用来向左/向右滑动的 onFling() 方法停止工作。
    【解决方案2】:

    你可以试试:

    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    
        android:layout_width="fill_parent"
    
        android:layout_height="fill_parent"
    
        android:fillViewport="true" >
    
        <LinearLayout
    
            android:layout_width="fill_parent"
    
            android:layout_height="wrap_content"
    
            android:orientation="vertical" >
    
        <TextView
            android:id="@+id/TEXT_STATUS_ID"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1.0"/>
    </LinearLayout>
    </ScrollView>
    

    【讨论】:

    • 我必须使用
    • @DanJurgen,你会的。在ScrollView 中创建可滚动的TextView 将不起作用。
    • @yugidroid 。我试过了,它工作。但是,文本变得太高或太低。有什么方法可以让它在两个固定长度之间?并且每当我在那里收到新文本时,该位置(可以说非常向上)仍然适用于新文本..我希望它居中..
    • onFling() 方法和手势在您覆盖 dispatchTouchEvent 时起作用 @Override public boolean dispatchTouchEvent(MotionEvent ev) { super.dispatchTouchEvent(ev);返回 productGestureDetector.onTouchEvent(ev); }
    【解决方案3】:
    <ScrollView
    android:id="@+id/SCROLLER_ID"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    
        <TextView
        android:id="@+id/TEXT_STATUS_ID"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    
    </ScrollView>
    

    【讨论】:

    • 嗨@Danil。不幸的是,它不起作用。长文本不能向下滚动并且被截断。 onFling() 方法也不起作用。
    • 你的安卓版本是什么,你的手机是什么?
    • 我有几个不同的设备。这并不重要:它的基本功能。 stackoverflow.com/questions/6674341/…
    猜你喜欢
    • 2017-12-21
    • 2013-11-11
    • 2019-06-30
    • 1970-01-01
    • 1970-01-01
    • 2016-11-03
    • 2016-05-29
    • 1970-01-01
    • 2023-03-13
    相关资源
    最近更新 更多