課題 UI用のモジュールを作成し、AndroidTestを実行しようとしたところ、いくつかエラーが発生したのでメモ 対応 モジュール側のAndroidManifestに以下を記述する <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <application> </application></manifest>
内容 ソニーのXperia端末にインストールされているキーボードアプリ、POBox Plusを使っている場合にJetpack ComposeのTextFieldで文字入力しようとすると漢字及び濁点が入力できない。 ComposeBomの2024.05.00 までは問題なし ComposeBomの2024.06.00 からエ…
内容 色を指定する際に現時点で採用されているColorSchemeの値(例えばsurface)を使いたい。どうすればいいか。 対応 MaterialTheme.colorSchemeを使う。surfaceにアクセスしたいならMaterialTheme.colorScheme.surfaceでアクセスできる AlertDialog( conta…
内容 アイコンボタンなどのタップ領域を広げるためにComposableでInsetDrawableのようことを実現したい。どうすればよいか。 対応 ボタン全体をBoxで囲み、最低限確保したいサイズをdefaultMinSizeで指定する。 /** * タッチ領域付きButton * * @param modif…
内容 Textコンポーサブル使用時、lineHeightをstyle = TextStyle(lineHeight = 21.sp) で記述したときと Text(lineHeight = 21.sp)としたときとで異なる結果になった。 検証コード @Preview @Composable private fun TextLineHeight<figure class="figure-image figure-image-fotolife" title="lineHeight検証">[f:id:takeR:202406301801</figure>…
課題 KMP実装中、wasmJsBrowserRunで動作を確認しようとしたところ以下のエラーに遭遇 * What went wrong: Execution failed for task ':kotlinStoreYarnLock'. > Lock file was changed. Run the `kotlinUpgradeYarnLock` task to actualize lock file タス…
課題 androidx.compose.material3:material3 を 1.2.0 にしたところ、TopAppBarとPullRefreshがうまく連動して動作しなくなった(TopAppBarDefaults.exitUntilCollapsedScrollBehaviorの場合に下にスクロールしてもTopAppBarが降りてこない)。どうすればよ…
内容 あるコンポーサブルをにclickable属性を付与したいが、条件によってはoffにしたい。 クリックイベントを空 {}にしてもタップエフェクトが発生してしまう。どうすればよいか。 対応 Modifier.clicable()のenabled パラメータを使う @Composable fun Some…
内容 TabLayoutとPagerの組み合わせはAndroidではお約束だが、Tab(TabRow, TabColumn)とPager(HorizontalPager, VerticalPager)それぞれのComposableにはページが変更された、といういい感じの関数をセットする方法がない。どうすればよいか。 対応 Tab側…
内容 androidx.navigation関連のライブラリを2.6.0にあげたところDuplicate classエラーが発生した。 > A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable > Duplicate class com.google.android.play.c…
内容 Jetpack ComposeでPagingライブラリのレスポンスであるFlowを使ったComposableを Preview、テストしたい。どうすればよいか。 対応 Version 3.0.0-alpha04 から PagingData.from(List<T>) が使えるようになったのでこれを使う。 // 本の一覧があるとする v</t>…
内容 Android Gradle Pluginを8.0.0にアップデートとしたところ、BuildConfigの部分がコンパイルエラーになった。 コンパイル時にBuildConfigが生成してくれていないようである。 原因 BuildFeatures.ktを見るとbuildConfigのデフォルト値がfalseになってい…
内容 アイコンのSVGデータなのでIconコンポーサブルを使って表示したいが、SVGデータが2色以上になっていて、 Iconコンポーサブルを使うと1色になってしまい、正しく表示されない。どうすればよいか。 対応 tint(色付) をColor.Unspecified (不特定)にす…
内容 コンテンツをリスト表示する際に、記事などの長文を部分表示したい場合に maxLinesパラメータを使って表示を制限するが、現在どこまで文字列が表示されているかを知りたい。どうすればよいか。 対応 TextViewの場合にはTextUtils.ellipsize() という関…
内容 Kotlinの公式サイトにあるKMMのチュートリアル Get started with Kotlin Multiplatform Mobile を進めていくうち、2023年1月20日現在で動かない箇所があったのでそのメモと対策。ある時期だけ意味をなすと思われる消費期限のありそうな記事。あと使用し…
内容 Paging3とLazyColmnを使用して一覧を表示しているが、画面遷移して戻るとスクロール位置が先頭に戻ってしまう。どうすれば良いか 補足 以前同じ問題を対処するため以下の記事を書いたが、不完全だったのと個人的により良い方法が見つかったため改めて。…
課題 Jetpack ComposeでSnackbarを表示しようとしたら想定とは違った色で表示された。色を指定するにはどうすればよいか。 対応 SnackbarではColorsで指定した色がデフォルトで使われるのでそれを変更する手もあるのだが、ちょっと加工して使われるので、こ…
内容 Jetpack Compose関連のライブラリのバージョン指定をこれまで個別に行なってきたが、Firebaseと同様にBOM(Bill of Materials)が提供されるようになった。依存関係をカバーしてくれるので早速使っていきたい。 対応 基本となる設定を確認。既に書いて…
内容 Android StudioのElectric Eelから、App Quality Insights で Firebase Crashlyticsに記録された内容が参照できるようになった。 対応 Android StudioにFirebase Crashlyticsで使っているアカウントでログインするだけ。既に別アカウントでログインして…
課題 TextStyleを使って文字コードやフォントサイズ、色などを指定できるが、画面ごとに微妙に変わることがあり、その度にスタイルを作っていくと数が増え過ぎてしまう。どうすればよいか。 回答 TextStyle.copy()を使おう。 実践例 メインで使うテキストカ…
追記 新しい記事を書いたのでこちらをご参考ください。 takerpg.hatenablog.jp 内容 Fragment内に ComposeVIew を作成し、LazyColumn でリストを表示したが、画面遷移から戻るとスクロール位置が元に戻ってしまう。 どうすればよいか。 TODO まず、ComposeVi…
内容 Kaptに代わるアノテーションプロセッサとして登場したKSP。Roomが対応しているので適用する。 対応 app/build.gradleを編集する。 変更前 dependencies { val room_version = "2.4.2" implementation("androidx.room:room-ktx:$roomVersion") kapt("and…
内容 LazyColumnで一覧を表示する際にローディングのフッターを表示したい。どうすればよいか。 対応 LazyColumn、LazyVerticalGridなどで一覧を表示する場合、通常は各Scope関数であるitemsに一覧データを渡してアイテムごとに処理を行うが、単にLazyColumn…
内容 Twitterアカウントでのログインを可能にしているアプリで、Twitterアプリのバージョンを 9.54.0-release.0 の場合に 認証トークンを取得できずにログインできなくなる。 対応 Twitterアプリのバージョンを 9.54.1-release.0 にアップデートする。 感想 …
追記 https://developer.android.com/jetpack/androidx/releases/paging#1.0.0-alpha19 1.0.0-alpha19ですべてのLazyLayoutに対して利用可能な低レベルの拡張メソッドが提供されるようになっため、以下の対応はすでに不要となっている。 内容 LazyVerticalGr…
内容 com.android.tools:desugar_jdk_libsを1.2.0に更新したところ、以下のエラーに遭遇した。どうすればよいか。 Unsupported desugared library configuration version, please upgrade the D8/R8 compiler 対応 Android Gradle Pluginのバージョンを上げ…
内容 Modifier.weightの使い方について迷った箇所があったのでまとめておく Modifier.weightの仕組み ある範囲内(Row, Columnなど)に並べられたComposableの幅を比率で確保するための仕組み weightを付けなかったComposableはそのまま描写される weightの…
内容 Coilのバージョンを 1.4.0 から 2.1.0 に上げたところ、一部のバナー画像が表示されなくなった。 調査 エラーは以下のようなもので、レスポンスヘッダーのcontent-disposition に無効なキャラクタが含まれているようだ。filenameの「バナー」の部分だろ…
内容 WebViewでページをロードした際に WebViewClient.onReceivedError で拾ったエラーのリスト。 新しいものを見かけた場合には随時追加したい。 Description errorCode description 内容 -1 ERR_FAILED -1 ERR_HTTP2_PROTOCOL_ERROR サイトに接続できない …
内容 TextFieldをdisabledな状態にしたい。どうすればよいか。 対応 enabledパラメータをfalseにする。基本はこれだけで、フォーカスが当たらなくなり、編集不可になる。 // 抜粋 TextField( enabled = false ) 色が変わるようにする enabled=falseになった…