ListView项中的水平可滚动Textview

时间:2018-06-10 16:12:48

标签: android listview textview scrollview

我的ListView项目中有一个TextView(第二个)。当用户侧面的文本不符合所需的maxHeight(250dp)时,用户应该能够水平滚动它。我尝试使用Horizo​​ntalScrollView,但似乎不起作用。有人解决我的问题吗? (这些项目被设计为卡片,因此层次结构可能看起来很奇怪)

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/transparent"
    android:cacheColorHint="@android:color/transparent"
    android:descendantFocusability="blocksDescendants"
    android:paddingLeft="15dp"
    android:paddingRight="15dp"
    android:paddingTop="10dp">

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="90dp"
    android:background="@drawable/card_background_selector"
    android:orientation="vertical"
    android:descendantFocusability="blocksDescendants"
    android:paddingBottom="15dp"
    android:paddingLeft="15dp"
    android:paddingRight="15dp"
    android:paddingTop="15dp">

    <RelativeLayout
        android:layout_width="255dp"
        android:layout_height="61dp"
        android:descendantFocusability="blocksDescendants">

        <TextView
            android:id="@+id/question"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_marginRight="5dp"
            android:text="1248$"
            android:textColor="#000000"
            android:textSize="18sp"
            android:textStyle="bold" />

        <HorizontalScrollView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentStart="true">

            <TextView
                android:id="@+id/answer"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_alignParentStart="true"
                android:maxWidth="250dp"
                android:scrollHorizontally="true"
                android:scrollbars="horizontal"
                android:singleLine="true"
                android:text="Some looooooooooooooooooooooooooooong Text"
                android:textColor="#000000"
                android:textSize="15sp" />
        </HorizontalScrollView>

    </RelativeLayout>
</FrameLayout>

2 个答案:

答案 0 :(得分:0)

您可以在不使用ScrollView的情况下滚动到TextView,您可以添加

android:scrollbars = "Horizontal"到您的TextView,然后在您的代码中添加

yourTextView.setMovementMethod(new ScrollingMovementMethod());

答案 1 :(得分:0)

我不确定这是否是这样做的正确方法。但以下两种方法对我有同样的要求。

  1. 给出足够大的宽度,例如,你可以有3000dp的值。
  2. 或者

    1. 根据您可能填充的字符串的长度动态更改textView的宽度。
    2. LinearLayout.LayoutParams widthHeightParams = new LinearLayout.LayoutParams(20,2000);
      mTextView.setLayoutParams(widthHeightParams);  
      

      试一试