팀 프로젝트 중 수정버튼을 누르면 같은 View에서 정보를 수정할 수 있게 만들어 주는 부분을 진행 중이다.
더 좋은 방법이 있는지는 모르겠지만 단순히 textView로 보여지고 있는 부분의 visibility값을 gone으로 가리고 editText로 바꿔주는 걸로 진행하고 있었다.
private fun editMode() {
isEditMode = !isEditMode
if (isEditMode) { //편집모드
binding.ivEditProfile.visibility = View.GONE
binding.tvAddTagTypeOfDevelopment.visibility = View.VISIBLE
binding.etUserName.visibility = View.VISIBLE
binding.etUserSelfIntroduction.visibility = View.VISIBLE
binding.btnCompleteEdit.visibility = View.VISIBLE
binding.tvUserName.visibility = View.GONE
binding.tvUserSelfIntroduction.visibility = View.GONE
} else {
binding.ivEditProfile.visibility = View.VISIBLE
binding.tvAddTagTypeOfDevelopment.visibility = View.GONE
binding.etUserName.visibility = View.GONE
binding.etUserSelfIntroduction.visibility = View.GONE
binding.btnCompleteEdit.visibility = View.GONE
binding.tvUserName.visibility = View.VISIBLE
binding.tvUserSelfIntroduction.visibility = View.VISIBLE
}
}
지금 내 정보를 수정하는 부분에서 이름, 소개, 태그 버튼 등 보여지고 가려지고 있는데 추가할게 아직 많이 남아있다.
그렇다는건 추가할 수록 코드는 더 길어진다는건데..
코드를 간결하게 해야할 필요를 느꼈다.
그나마 생각해낸 방법은
편집모드에서 textView를 editText로 바꾸니까 나눠서 배열에 담아 처리
val editViews = arrayOf(etUserName, etUserSelfIntroduction, btnCompleteEdit)
val textViews = arrayOf(tvUserName, tvUserSelfIntroduction)
editViews.forEach { it.visibility = if (isEditMode) View.VISIBLE else View.GONE }
textViews.forEach { it.visibility = if (isEditMode) View.GONE else View.VISIBLE }
사실 코드의 가독성만 좋아진 부분이라서 분명 뭔가 더 좋은 방법이 있을 것같은데 알게되면 글을 추가해야겠다.
'Kotlin > TIL' 카테고리의 다른 글
Youtube API에서 받은 영상 재생 (0) | 2024.05.22 |
---|---|
Android - Github API 검색 (TIL 05.08) (0) | 2024.05.08 |
TIL (05.07) (0) | 2024.05.07 |
Postman 사용하기 (TIL 05.02) (0) | 2024.05.02 |
Android -GoogleMap 사용 (TIL 05.01) (0) | 2024.05.01 |