Горизонтальный прокручиваемый текстовый вид внутри элементов ListView - PullRequest
0 голосов
/ 10 июня 2018

У меня есть TextView (второй) внутри моего ListView Items.Пользователь должен иметь возможность прокручивать его по горизонтали, когда текст в стороне не укладывается в желаемую максимальную высоту (250 dp).Я пробовал это с HorizontalScrollView, но, похоже, не работает.У кого-нибудь есть решение моей проблемы?(Предметы стилизованы под карты, поэтому иерархия может показаться странной)

<?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 голосов
/ 10 июня 2018

Я не уверен, что это будет правильным способом. Но следующие два метода работали для меня для одного и того же требования.

  1. Дайте достаточно большую ширину, например, вы можетеимеют значение 3000dp.

или

Динамически изменять ширину textView в соответствии с длиной строки, которую вы можете заполнить.
LinearLayout.LayoutParams widthHeightParams = new LinearLayout.LayoutParams(20,2000);
mTextView.setLayoutParams(widthHeightParams);  

Попробуйте

0 голосов
/ 10 июня 2018

Вы можете выполнить прокрутку к вашему TextView без использования ScrollView. Вы можете добавить

android:scrollbars = "Horizontal" к вашему TextView, а затем в свой код добавить

yourTextView.setMovementMethod(new ScrollingMovementMethod());
...