본문 바로가기

나의 플랫폼/안드로이드

[Android] Edittext, TextView 에서 singline deprecated

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Layout xml 에서 Edittext와 TextView에 singleLine 속성을 추가 할 경우 줄이 쫙! 그어 진다.


singleLine이 deprecated 되니 그만 써라 라는 경고 메세지 이다.


그럼 singleLine을 대신 해서 어떻게 해야 할까??


구글링을 해보면 singleLine을 대신 해서 maxLines="1"을 쓰면 된다고 한다.


그래서 Edittext에 maxLines="1"을 넣어서 테스트 하면 

한줄은 맞는데 키보드에서 개행 버튼을 누르면 개행이 되어 버린다.

이전에 쓴 글이 안보이는 현상이 일어 난다.


머지???


## 테스트 결과 아래와 같다.

- Edittext 일 경우



<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/ask_email"
android:maxLines="1"
android:inputType="textEmailAddress"
/>


위 소스는 Email을 작성하는 Edittext이다.

maxLines="1"을 들어가 있습니다.

여기에서!! 꼭 inputType을 넣어주세요.

기본이 inputType="text" 입니다.


Email을 작성하는 EditText이므로 textEmailAddress로 셋팅 하였습니다.


그럼 문제 없이 singleLine='true'와 똑같은 동작을 하게 될껍니다.


- TextView일 경우


TextView일 경우는 어떻게 보면 신경을 안써도 되겠지만,

그래도 혹시나 하는 마음에 설명을 드린다면,


TextView에서는 inputType을 할 필요가 없습니다.

키보드를 쓸 일이 없으니깐요^^ 개행을 할 수가 없습니다.


따라서 그냥 maxLines="1"만 해주면 됩니다.




## 참고 사항

혹시 lines와 maxLines에 구분을 어떻게 해야할지 궁금 하신 분을 위해 간단하게 설명 드릴께요.


lines은 기본 라인을 정하는 겁니다.


즉 lines="3"일 경우 레이아웃이 3줄을 무조건 먹는 거죠.


--------------

--------------

--------------

그래서 4줄로 넘어갈 경우는 Scroll로 봐야 하는 상태가 되는 거죠.


하지만, maxLines="3"일 경우는 레이아웃을 3줄로 제한 한다는 겁니다.


----------------

----------------

-------------- ...


위와 같이 ellipesize="end" 로 놓았으면 '...'으로 바뀌는 거죠.



참고하세요.