반응형
간단한 일기장 같은 어플을 토이 프로젝트 겸 개발하고 있는데 문제가 발생했습니다.
텍스트가 너무 길게 입력받으면 정해진 텍스트뷰의 길이를 초과하여 레이아웃 자체도 넘어가 버려서 그 이상의 내용은 볼 수가 없었습니다.
에딧 텍스트는 입력받을 때 길면 알아서 넘어가지길래 에딧 텍스트로 해보았는데 그러면 글이 수정이 가능해져 버리는 불상사가...
텍스트 길이 초과 시 오류 해결하는 법! 텍스트뷰에 스크롤을 넣기를 사용하여 해결해보았습니다.
대충 이정도 길이의 문장을 입력하고 확인해보겠습니다.
이렇게 지정된 범위를 넘어가 버리면 저 상태에서 스크롤도 안되고 그 이후의 내용도 안보입니다. 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자리에는 텍스트뷰의 아이디가 들어가면 됩니다.
반응형
'안드로이드[Android]' 카테고리의 다른 글
안드로이드[Android] 인터넷창 띄우기 / 인터넷창으로 이동하기 (0) | 2022.03.27 |
---|---|
안드로이드[Android] 이미지버튼 배경 투명하게 하기 (0) | 2022.03.19 |
안드로이드 스튜디오[Android Studio] 리얼타임 데이터베이스(Realtime Database) 연동(firebase) (0) | 2022.03.07 |
안드로이드 스튜디오[Android Studio] 파이어베이스(Firebase) 연동하기 (2) | 2022.03.07 |
안드로이드 스튜디오[Android Studio] Plugin [id: 'com.google.gms.google-services'] was not found in any of the following sources: 에러 해결방법 (0) | 2022.03.06 |
최근댓글