在android上的textview上水平滚动?

时间:2012-12-31 04:27:53

标签: java android

我正在使用计算器。我注意到在默认的android calc中你可以水平滚动textview。我查看了文档,发现了属性android:scrollHorizontally但是在将它添加到textview之后我仍然无法进行水平滚动,在文档中没有关于它的更多信息让我认为只添加attr应该满足。这是计算器的文本视图:

    <TextView android:id="@+id/edit_text"
        android:layout_width="0dip"
        android:layout_height="match_parent"
        android:layout_weight=".8"
        android:singleLine="true"
        android:scrollHorizontally="true"
        android:gravity="center|right"
        android:text="0" />

当字符超出文本视图宽度时,字符串将被剪裁,并且...将显示在其结尾处。我做错了什么?

4 个答案:

答案 0 :(得分:34)

<HorizontalScrollView android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TextView android:layout_width="40dp"
        android:layout_height="wrap_content"
        android:scrollHorizontally="true"
        android:text="Horizontal scroll view will work now"/>

</HorizontalScrollView>

这就是如何使textview水平滚动。

答案 1 :(得分:2)

只需使用此

   textview.setMovementMethod(new ScrollingMovementMethod());
   textview.setHorizontallyScrolling(true);

答案 2 :(得分:1)

我来晚了一点,但是我没有添加HorizontalScrollView

就可以达到相同的结果

EditText扩展了TextView以支持滚动和选择。因此,您可以将EditText用作TextView(禁用触摸,焦点和光标)。

<EditText
    android:id="@+id/edit_text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/transparent" --> This remove that line at the bottom
    android:clickable="false" --> It can be true if you need to handle click events
    android:cursorVisible="false" --> Hide the cursor
    android:focusable="false" --> Disable focus
    android:singleLine="true"
    android:text="This is a very long text that won't be possible to display in a single line"/>

我只是无法在各种设备上进行测试...我只是在分享,因为它可能对其他人有用。

答案 3 :(得分:0)

可能是一个较晚的答案,但是可以使TextView双向滚动。无需在XML或代码中设置scrollHorizontally属性。

以下代码根据文本内容使单行或多行TextView垂直和水平滚动。

<HorizontalScrollView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/toolbar"
        android:scrollbars="none">

        <ScrollView
            android:id="@+id/scroll_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:scrollbars="none">

            <androidx.appcompat.widget.AppCompatTextView
                android:id="@+id/text_content"
                fontPath="fonts/roboto_medium.ttf"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="@color/primary_text"
                android:textSize="14sp" />

        </ScrollView>
</HorizontalScrollView>

请注意,layout_widthScrollView的{​​{1}}设置为TextViewwrap_content的宽度可以是HorizontalScrollViewwrap_content,并且无效。