본문 바로가기
안드로이드 코틀린

[Kotlin][Android] 더보기가 있는 텍스트뷰 만들기

by teamnova 2022. 2. 3.
728x90

안녕하세요. 이번 글에서는 라이브러리를 통해 위 기능을 할 수 있는 텍스트뷰를 사용해 구현해보겠습니다. 테스트한 android sdk는 28입니다.

 

 

app 수준 gradle에 라이브러리를 추가해줍니다.

dependencies {
    ...
    implementation 'kr.co.prnd:readmore-textview:1.0.0'
    ...
}

 

 

레이아웃 중 원하는 곳에 더보기 기능이 있는 텍스트뷰를 위치해줍니다.

<kr.co.prnd.readmore.ReadMoreTextView
    android:id="@+id/tv_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:readMoreColor="@android:color/holo_blue_light"
    app:readMoreMaxLine="3"
    app:readMoreText="...더보기" />

readMoreColor : 더보기 텍스트의 색상

readMoreMaxLine : 최대로 표시할 텍스트 줄 수

readMoreText : 글자 초과 시 표시할 텍스트

 

아래와 같이 긴 문자열을 텍스트뷰에 세팅해줍니다.

val textView = context.findViewById<ReadMoreTextView>(R.id.tv_text)
textView.text = "이 글은 사막의 한가운데 불시착한 조종사가 어린 왕자를 만나게 되면서 일어나는 이야기로 시작된다.\n" +
        "\n" +
        "사람들이 살고있는 땅에서 수천 마일 떨어진 사막 위에서 잠이 들었는데 어린 꼬마가 나타나 양 한 마리를 그려달라고 한다. 조종사가 몇 번이나 그려 준 그림을 마음에 들지 않아 한다. 비행기를 고쳐야 했으므로 귀찮아서 상자를 아무렇게 그리고 양이 그 안에 있다고 하자 어린 왕자는 흡족해한다.\n" +
        "\n" +
        "B612라는 소행성에서 떠나온 어린왕자. 자신의 별에서 석양을 보고, 화산 청소를 하며 장미꽃과 같이 살고 있었다. 아름답지만 교만한 꽃의 투정 때문에 지친 어린 왕자는 소행성을 떠나와 다른 별들을 방문한다.

 

 

해당 텍스트뷰를 클릭 시, 텍스트뷰가 펼쳐지면서 전체 텍스트가 보이고

한번 더 클릭하면 텍스트뷰가 접혀집니다.