스팀 앱 개발기 #77 - 태그 화면에서 썸네일 없는 포스트 항목에 엉뚱한 썸네일이 보이는 오류steemCreated with Sketch.

시작하며...

포스트들 중에는 이미지가 없는 것들도 있죠. 이미지 없는 포스트의 썸네일은 앱 아이콘으로 지정했습니다. 그런데 문제가 발견되었습니다. 썸네일 없는 포스트 항목에서는 앱 아이콘이 보여야 하는데, 그게 아니라 다른 포스트의 썸네일이 대신 보이는 오류였습니다.


원인

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


마치며...

태그 화면 구현하고 나서 이런 저런 문제들이 계속 보여서 고치고 있습니다. 작은(?) 기능 하나 완성하는 것이 결코 쉽지 않음을 몸소 체험하고 있어요. 이 또한 개발을 더 잘 하기 위한 좋은 경험으로 받아들이고자 합니다.


지난 스팀 앱 개발기

Sort:  
 4 years ago 

[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.

Coin Marketplace

STEEM 0.04
TRX 0.32
JST 0.081
BTC 61426.98
ETH 1631.00
USDT 1.00
SBD 0.42