본문 바로가기
프로그래밍/Android

[Android] TextView안의 텍스트가 길 경우 흐르도록 표시

by Youngs_ 2022. 9. 26.

안드로이드에서 텍스트가 길 경우 텍스트가 흐르게 하려면 ellipsize="marquee" 속성을 이용하는데 해당 속성을 이용하려면 해당 TextView가 Select되어있어야하고, SingleLine이 True로 설정되어있어야한다.

하지만 android:singleLine이 Deprecate되었다. android:maxLines를 이용하면 된다고는 하지만, maxLine을 입력하면 ellipsize="marquee"로 설정했을때 텍스트가 흐르지 않는다. 일단 아래 코드와 같이 텍스트뷰를 만든다.

<TextView
    android:id="@+id/id1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:scrollHorizontally="true"
    android:ellipsize="marquee"
    android:maxWidth="200dp"
    android:layout_marginEnd="10dp"
    android:textSize="25dp"/>

 

Deprecate되었을때는 해당 설정을 사용하려고할때 취소선이 그어져있는데 코드에서 SingleLine을 할때는 해당 취소선이 나오지않았다.
그래서 필자는 일단 코드에서 SetSingleLine()을 이용해 SingleLine을 설정하였다. -> 원래는 이것도 사용하지 않는게 좋지않을까 싶지만..

binding.id1.isSelected = true
binding.id1.setSingleLine() // 이름이 너무 길면 흐르도록 조정

 

코드에서는 Deprecate되었을때 나오는 취소선이 나오지않는다.
Deprecate되었을때의 예시

댓글