본문 바로가기
안드로이드 자바

[Android][Java] 더보기 기능이 있는 텍스트뷰 구현하기

by teamnova 2023. 6. 4.

더보기 기능이 있는 텍스트뷰 구현 예제입니다.

  1. XML 레이아웃 파일에서 TextView를 만듭니다.

더보기 기능을 추가해줄 긴 글을 작성해줍니다.

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ExampleActivity">

    <TextView
        android:id="@+id/text_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toTopOf="parent"
        android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit.
        Sed ut sapien magna. Integer at nisl nec ipsum vehicula euismod sed in tellus.
        Morbi condimentum turpis eu elit bibendum, et tincidunt massa rutrum.
        Donec euismod, magna vel scelerisque bibendum, magna risus tristique ipsum, vel imperdiet est enim et elit.
        Quisque ac elit eu mi congue venenatis id id velit. Sed feugiat ultricies orci vitae bibendum.
        Sed malesuada, nunc eget semper pretium, eros odio pretium orci, vel lobortis sapien nisl vel libero.
        Aliquam hendrerit velit non lorem tincidunt, non dictum ex suscipit. Morbi eget lorem sit amet ante ultricies vulputate. Sed mattis erat at sapien sagittis, in maximus nulla dignissim."
        android:maxLines="2"
        android:textSize="20sp"
        android:textColor="@color/black"
        android:ellipsize="end" />

</androidx.constraintlayout.widget.ConstraintLayout>

2. Java 코드에서 TextView를 찾고, 텍스트 더보기 기능을 추가합니다.

package com.example.everyrunrenew;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.TextView;

public class ExampleActivity extends AppCompatActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_example);

        TextView textView = findViewById(R.id.text_view);
        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                TextView textView = (TextView) v;
                if (textView.getMaxLines() == 2) {
                    textView.setMaxLines(Integer.MAX_VALUE);
                    textView.setEllipsize(null);
                } else {
                    textView.setMaxLines(2);
                    textView.setEllipsize(TextUtils.TruncateAt.END);
                }
            }
        });
    }
}