스팀 앱 개발기 #77 - 태그 화면에서 썸네일 없는 포스트 항목에 엉뚱한 썸네일이 보이는 오류
시작하며...
포스트들 중에는 이미지가 없는 것들도 있죠. 이미지 없는 포스트의 썸네일은 앱 아이콘으로 지정했습니다. 그런데 문제가 발견되었습니다. 썸네일 없는 포스트 항목에서는 앱 아이콘이 보여야 하는데, 그게 아니라 다른 포스트의 썸네일이 대신 보이는 오류였습니다.
원인
DataBindingUtil.kt 파일의 setSrc 메소드에서 url 파라메터가 빈 값이면 그냥 리턴하는 것이 오류의 원인이었습니다.
해결 방법
setSrc 메소드의 url 파라메터가 빈 값이면, Glide 클래스의 error, fallback 메소드를 활용하여 앱 아이콘을 디폴트 이미지로 썸네일을 설정시켰습니다. 그 결과, 썸네일이 없는 포스트 항목에서 썸네일이 앱 아이콘으로 정상적으로 보입니다.
setSrc 메소드 수정
이 메소드의 첫 if 문에서 url 파라메터가 빈 값인지 체크하는 조건식을 제거했궁. 해결 방법에서 언급한대로 Glide 클래스의 error, fallback 메소드를 추가로 호출했습니다.
@BindingAdapter("android:src")
fun setSrc(imageView: ImageView?, url: String?) {
// To prevent null pointer exceptions
if ((null == imageView) or (null == url)) {
return
}
Glide.with(imageView!!)
.load(Uri.parse(url))
.placeholder(R.mipmap.ic_launcher)
.error(R.mipmap.ic_launcher)
.fallback(R.mipmap.ic_launcher)
.into(imageView!!)
}
GitHub Commit
마치며...
태그 화면 구현하고 나서 이런 저런 문제들이 계속 보여서 고치고 있습니다. 작은(?) 기능 하나 완성하는 것이 결코 쉽지 않음을 몸소 체험하고 있어요. 이 또한 개발을 더 잘 하기 위한 좋은 경험으로 받아들이고자 합니다.
지난 스팀 앱 개발기
- #76 - 태그 검색시 앱이 죽는 버그 수정
- #75 - 태그 화면의 포스트 항목에 태그/커뮤니티 표시
- #74 - 태그 화면에서 포스트 리스트 추가 로딩시 깜빡임 문제 해결
- #73 - 태그 화면의 포스트 리스트에 무한 스크롤 적용
- #72 - 태그 화면의 포스트 리스트에서 항목들 사이 분리선 보이기
- #71 - 태그 화면에서 포스트 항목들의 썸네일 로딩
- #70 - 태그 화면 1차 구현
- #69 - 태그 화면에 데이터 바인딩 적용
- #68 - 태그 화면(TagsFragment) 구성
- #67 - TagsViewModel 클래스에 포스트 리스트 구하는 메소드 그리고 라이브 데이터 추가
- #66 - bridge.get_ranked_posts API 연동 구현: ReadRankedPostsUseCase 클래스 추가
- #65 - bridge.get_ranked_posts API 연동 구현: SteemRepository 인터페이스, SteemRepositoryImpl 클래스 수정
- #64 - bridge.get_ranked_posts API 연동 구현: SteemService 인터페이스에 메소드 추가
- #63 - bridge.get_ranked_posts API 관련 데이터 클래스 추가 수정
- #62 - bridge.get_ranked_posts API의 응답 자료를 맡을 데이터 클래스 수정
- #61 - layout_post_item.xml 수정 후 예상치 못한 빌드 오류
- #60 - bridge.get_ranked_posts API의 응답 자료를 맡을 데이터 클래스 정의
- #59 - 태그별 포스트 리스트를 구하기 위한 bridge.get_ranked_posts API
- #58 - 포스트 리스트를 구성할 항목의 레이아웃 (3) 데이터 클래스 정의 및 데이터 바인딩 적용
- #57 - 포스트 리스트를 구성할 항목의 레이아웃 (2)
- #56 - 포스트 리스트를 구성할 항목의 레이아웃
- #55 - .gitignore 파일 작성
- #54 - RxJava 관련 메모리 누수 방지 코드 작성
- #53 - 버그 수정: 인터넷 미연결시 API 실행하면 앱 강제 종료
- #52 - 인터넷 미연결시 API 실행하면 어떻게 될까?
- #51 - 파워다운 끝났으나 SP to power down 값이 0이 아닌 버그
- #1 ~ #50
Posted through the AVLE Dapp (https://avle.io)
[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.