ようやくリクエスト

5月19日火曜日、雨

今日も一日降りつづく。よく降る。
そしてふと足元に忍びよる冷気をを感じる。暖かくなっているはずなのに、なぜか足にまとわりつく寒さが振りはらえない。気持ち悪い。

* * *

ようやく。ようやくである。
ようやく WindowInsets の修正をプルリクエストに仕立てられた。
長かった。

わかってしまえば単純な仕組みだった。しかし前任者がカスタムクラス内に複雑な隠蔽をしていた。レイアウト上でもカスタムクラスで親子関係をつくらないと WindowInsets が伝播しない。さらに悪いことに、このカスタムクラスがレイアウト上の親子関係の間に挟まると通常の伝播もそこで途切れてしまう。

この特殊性になかなか気づくことができず、ほんとハマった。

* * *

Android はふだん使いの端末でないため、モダンなアプリケーションがどんな動きをするのか知らない。

今回の WindowInsets の対応で CoodinatorLayout や DrawerLayout というものが導入されていたことを知った(それがマテリアルデザインの頃の話だそうで驚き。どれだけ僕の知識は遅れているんだろう)。

アプリケーションバーとツールバーがコンテンツ領域のスクロールにあわせて縮小されたりスクロールアウトしたりするらしい。いまどきの UI は。(いまどき? ひょっとすると2〜3年くらい遅れている可能性がある)

CoodinatorLayout はこのスクロールアウトを補助するレイアウト。もう一つの DrawerLayout は画面左から引っ張り出すサイドパネルを実現するもの。
ふたつのレイアウトは、画面上部のステータスバーの上端から画面下部のナビゲーションバー下端までの画面全体をアプリケーションのビュー表示領域として定義可能にしてくれる。

そして WindowInsets はシステム UI(つまりステータスバーやナビゲーションバー)が画面をどこまで覆っているかを教えてくれる。
この領域を避けるようパディングを設定しつつ clipToPadding="false" を指定。するとパディング部分も描画領域になる。システム UI を半透明にすると、あたかもシステム UI の下をくぐりぬけてコンテンツがスクロールしていくような(というか実際そのとおりなのだが)効果を出せる。

* * *

あからさまに情報商材売らんかな系の人が無節操に「好き」をつけていくのを、どうしたものかなあ……と放置していた。というところに「ブロック」機能があることを知った。

彼らのプロフィールページを開き(開くのは嫌だけれど)(背に腹はかえられない)「フォローする」ボタンの右隣にある「…」を押す。ここに「ブロック」機能がかくれんぼしている。もう少しカジュアルに呼び出せるといいんだけどな。

この記事が気に入ったらサポートをしてみませんか?