Androidにおける「GONE」と「INVISIBLE」の違い

Android

ちょっと仕事でやっていて「へ〜」と思ったのでメモ。
端末対応で、A端末ではタップしたあともImageView(画像)が問題なく表示されるのに、B端末ではタップするとImageView(画像)の表示が縮んでしまっておかしな表示になってしまっていた。
自分が作ったプロジェクトのものではなかったので、探り探りでやっていたがどうにも分からず「端末対応の闇に触れてしまったか……」と半ばあきらめかけた(端末独自の仕様なのでムリっすと言おうとした)が、パターンを探していたらBookmarkのような栞の画像がついてるもののレイアウトだけタップすると表示が変わったので改めて調査。挙動的に、存在を消してるような動きだったので「非表示 画像 Android」でGoogleで検索ーーー。
下記の記事が引っかかったので中身を拝見させてもらって問題は解決した。

View.INVISIBLEとView.GONEの違い
ひよこエンジニア / Python / JavaScript / Blockchain

記事通りになるが、「GONE」は存在を消す。「INVISIBLE」は非表示にする、だったので処理を書き換えた。
どうやらBookmark的な栞の画像領域があったのを、タップすると「GONE」でその領域の存在を消してしまったのでおかしなことになっていた模様だ。
INVISIBLEに処理して、栞のような画像を非表示にすることで解決したので無事課題は終わった。
ちょっと詰まったのでメモでした。
Qiitaの記事もわかりやすかったです。

INVISIBLEとGONEの違い - Qiita
はじめにボタンの表示/非表示を切り替える際の状態としてVISIBLE、INVISIBLE、GONEがあります。それらを分けるとVISIBLEは表示、INVISIBLEとGONEは非表示に分けられ…
タイトルとURLをコピーしました