728x90

ellipsize 옵션으로 글자가 maxline 옵션설정값을 넘어가면 ... 으로 보이는 것을 더보기 / 접기 로 구현  

private fun setViewMore(
        contentTextView: TextView,
        viewMoreTextView: TextView,
        closeTextView: TextView
    ) {
        // getEllipsisCount()을 통한 더보기 표시 및 구현
        contentTextView.post {
            val lineCount = contentTextView.layout.lineCount
            if (lineCount > 0) {
                if (contentTextView.layout.getEllipsisCount(lineCount - 1) > 0) {
                    // 더보기 표시
                    viewMoreTextView.isVisible = true

                    // 더보기, 접기 클릭 이벤트
                    viewMoreTextView.setOnClickListener {
                        contentTextView.maxLines = Int.MAX_VALUE
                        viewMoreTextView.isVisible = false
                        closeTextView.isVisible = true
                    }
                    // 접기 표시
                    closeTextView.setOnClickListener {
                        contentTextView.maxLines = 1
                        viewMoreTextView.isVisible = true
                        closeTextView.isVisible = false
                    }
                }
            }
        }
    }

 

 

+ Recent posts