👁️
ViewのVisibilityを拡張プロパティによって変更する
Android Viewでアプリを作っている場合、よくViewのVisibilityをプログラム的に変更したくなる。
その際によく用いられる手法はVisibilityを変更する拡張関数を作ること。
fun View.show() {
visibility = View.VISIBLE
}
fun View.hide() {
visibility = View.INVISIBLE
}
fun View.gone() {
visibility = View.GONE
}
もっといい方法がないか調べているときにcore-ktxにProperty-based Approachというものを見つけて、こちらのほうが活用の幅が広そうだった。
view.isVisible // VISIBLEならtrue
view.isInvisible // INVISIBLEならtrue
view.isGone // GONEならtrue
// visibilityを変更する
view.isVisible = true // VISIBLEにする
view.isVisible = false // GONEにする
プロパティとして定義されていることの利点はvisibilityの取得と変更をゲッターとセッターによって実行できる点である
そのためviewのvisibilityを見て処理を実行する際に有効である
if(view.isGone) {
// GONEだったときの振舞い
}
注意点があるとするとisVisibleがfalseだった場合はINVISIBLEではなくGONEの状態になっているので対応関係をきちんと把握しておく必要がある
参考文献
最初にプロパティベースのアプローチについて見つけたリンク
ソースコード
ドキュメント
core-ktxについて言及している他の記事
株式会社 カラビナテクノロジーは「命綱や支点を素早く確実に繋ぐカラビナ。そんなカラビナのような役割をテクノロジーで実現したい」という想いのもと、福岡で設立。 主にシステム開発・アプリ開発・ Webサイト制作を行っています。採用情報→karabiner.tech/recruit/requirements/
Discussion