반응형

간단한 일기장 같은 어플을 토이 프로젝트 겸 개발하고 있는데 문제가 발생했습니다.

텍스트가 너무 길게 입력받으면 정해진 텍스트뷰의 길이를 초과하여 레이아웃 자체도 넘어가 버려서 그 이상의 내용은 볼 수가 없었습니다.

에딧 텍스트는 입력받을 때 길면 알아서 넘어가지길래 에딧 텍스트로 해보았는데 그러면 글이 수정이 가능해져 버리는 불상사가...

텍스트 길이 초과 시 오류 해결하는 법! 텍스트뷰에 스크롤을 넣기를 사용하여 해결해보았습니다.

대충 이정도 길이의 문장을 입력하고 확인해보겠습니다.

이렇게 지정된 범위를 넘어가 버리면 저 상태에서 스크롤도 안되고 그 이후의 내용도 안보입니다. xml과 액티비티 혹은 프레그먼트를 조금 손보면 쉽게 스크롤 기능을 넣을 수 있습니다!

먼저 xml에서

android:scrollbars="vertical"

를 추가해줍니다.

<TextView
        android:id="@+id/postContent"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_marginTop="12dp"
        android:layout_marginEnd="16dp"
        android:layout_marginBottom="50dp"
        android:textSize="30dp"
        // 요기 사이의 것
        android:scrollbars="vertical"
        // 요기 사이의 것
        android:text="디테일 내용"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.045"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/postTitle"
        app:layout_constraintVertical_bias="0.0" />

이렇게 xml 파일에서 android:scrollbars="vertical" 를 추가해준 뒤

소스코드에서 postContent에 접근하여 

binding.postContent.movementMethod = ScrollingMovementMethod.getInstance()

이렇게 추가해주시면 됩니다.

이렇게 정상적으로 스크롤 기능이 구현되는 것을 볼 수 있습니다.

 

정리

1. xml 파일에서 텍스트 뷰 안에

android:scrollbars="vertical"

를 추가

 

2. 소스코드에서 바인딩으로 접근하여

binding.postContent.movementMethod = ScrollingMovementMethod.getInstance()

를 추가. postContent자리에는 텍스트뷰의 아이디가 들어가면 됩니다.

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기