タイトル通りの内容です。
結論から言うと、<merge>
タグのtools:parentTag
属性に追加先のレイアウトのLayoutを指定すればOKです。
asyncAll()という拡張関数を作ってKotlinのリスト操作の中で並列処理を実行する
前回の記事でawaitAll()
を使ったリスト操作の中で並列処理を実行した結果の待ち合わせについて書きました。
その中で、並列処理を実行するときに毎回map { async { hoge() } }
と書くのは辛いと思ったので、asyncAll()
という拡張関数を作りました。
Kotlinのリスト操作の中でCoroutinesのasync()で並列処理を実行した結果を待ち合わせる方法
タイトルが非常に分かりづらくて申し訳ないです🙇♂️
Kotlinのリスト操作の中でネットワーク通信のような時間のかかる処理を並列に実行したい場面があったのですが、Coroutinesを使ってその結果を待ち合わせる方法が最初分からなかったので、本記事はそのメモです。
OSバージョン間の差分を考慮したAndroidのThemeの定義方法
AndroidでHaptic Feedbackを実装する
本記事では、iOSではおなじみのHaptic Feedback(触覚フィードバック)をAndroidで実装する方法について記載しています。
「Android Dev Summit 2019」の動画で実装例が紹介されていたので、こちらを参考にしました。
Haptic FeedbackについてはMaterial Designの以下のページが参考になります。
ConstraintLayout下でlayout_widthにwrap_contentを指定したTextViewが制約を無視してはみ出すときの対処法
(タイトルが長い…笑)
以下のようなレイアウトを作成するときにハマった話です。
左右に可変テキストがあり、テキストが長くなって画面に収まらなくなるときに左側の可変テキストの末尾が省略される仕様を想定しています。
(余談ですが、Layout Editorではandroid:ellipsize="end"
の指定は見た目に反映されないのですね…)
ターミナルでzshにPATHを通す方法
macOS Catalina以降でデフォルトのシェルがzshになってからPATHを通す作業を初めて行ったので、備忘録を兼ねて。
なお、MojaveなどからOSアップデートした場合はデフォルトのシェルがbashのままになっているようですが、公式サイトにzshへの変更方法が記載されていました。
少し話が逸れましたが、ターミナルでzshにPATHを通す方法は以下の通りです。
- ホームディレクトリ直下に
.zshrc
というファイルがあるか確認する(なければ新規作成する)find ~/.zshrc
などでファイルがあるか確認できるtouch ~/.zshrc
などでファイルが新規作成できる
- Vimなどで
.zshrc
ファイルを開き、以下の1行を追記する
export PATH="$PATH:[追加したいディレクトリの絶対パス]"
.zshrc
ファイルを閉じ、以下のコマンドを実行する
source ~/.zshrc
作業としてはこれだけなのですが、ディレクトリの絶対パスに~
(チルダ)を指定しても展開されなかったり($HOME
は展開されました)、export
コマンドを.zshrc
ファイルに記述するのではなくターミナルで実行していたせいで一時的にしか有効にならなかったりと、地味に苦戦してしまいました🤦♂️
※追記
2.で
"
を付けずにexport PATH=$PATH:[追加したいディレクトリの絶対パス]
と記述すれば、ディレクトリの指定に~
が使えました。- OK:
export ANDROID_HOME=~/Library/Android/sdk
- NG:
export ANDROID_HOME="~/Library/Android/sdk"
~/Library/Android/sdk
という文字列がそのまま環境変数ANDROID_HOME
に設定される
- OK:
上記の
"
を付けない記述方法において[追加したいディレクトリの絶対パス]
にスペースが含まれるときは、\
(バックスラッシュ)をスペースの直前に追加してエスケープする必要がありました。- OK:
export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home
- NG:
export JAVA_HOME=/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home
not valid in this context: Studio.app/Contents/jre/jdk/Contents/Home
のように、スペース以降が無効な文字列として認識される
- OK:
ConstraintLayout下でGroup指定したViewのvisibilityは個別には変更できなくなる
分かってしまえば確かにその通りなのですが、地味にハマってしまったのでメモ。
ConstraintLayout下でGroup指定したViewのvisibilityは個別には変更できなくなるので気をつけてくださいという話です。