20220114のAndroidに関する記事は2件です。

初心者から始める!コードで書く Layout_marginについて

layout_margin とは 何か 簡単に言うと、View の 外側に領域(余白・スペース)を作るということです 早速xmlに記載するのと同じ様式で記載していきます android:layout_margin →Viewの周り全体に 領域を作ります android:layout_marginTop →Viewの上側に(以下略 android:layout_marginBottom →Viewの下側に android:layout_marginStart(Left) →Viewの左側に android:layout_marginEnd(Right) →Viewの右側に android:layout_marginVertical →Viewの上下に android:layout_marginHorizontal →Viewの左右に "marginStart"と"marginEnd" は "marginLeft"と"marginRight" どちらで書いても問題ありませんが、"marginStart"と"marginEnd" が一般的です また、統一されていた方がコードが読みやすくなります android:layout_margin を 書いたViewの外側に余白・スペースを作りこみます 実際に androidStudio を使って コードとlayoutを見てみましょう メインとなるViewはmarginで作れた領域がわかりやすくなる様に色をつけたViewを用意しました 何も指定がない為、デフォルトで 左上 にViewが置かれています ここに android:layout_margin を 試しに 100dp で 記入しました android:layout_margin は Viewの周り全体に 領域を作るので上下左右に 100dpずつの余白ができました
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Observable.intervalみたいに一定間隔実行をKotlin Flowで書きたい

この記事で紹介すること Observable.intervalみたいな一定間隔での処理実行をKotlin Flowで書きたい。 flow.intervalみたいなオペレータがなかったので、どうしようかなと。 // これをKotlin Flowで書きたい val disposable = Observable.interval(100, TimeUnit. MICROSECONDS).startWith(0L) .subscribeOn(Shedulers.computation()) .subscribe { // 定期実行したい処理 getHogeHogeData() } やり方と解説 Flowの中でdelay関数を使う 解説と言いつつすごい単純で申し訳ないんですが、ループするflowを作って、flowの中にdelay関数を呼んであげれば似たような動作になりました。 // 0.1sec間隔で処理実行 private fun intervalFlow() = flow<hogeHogeData>{ while(true){ // 定期実行したい処理 emit(getHogeHogeData()) delay(100) } } onEach()でdelay関数を使う 呼び出し側で指定したい場合はonEachでdelay関数をセットしてあげてもOKです。 private fun roopFlow() = flow<hogeHogeData>{ while(true){ // 定期実行したい処理 emit(getHogeHogeData()) } } var data: hogeHogeData? = null val job = roopFlow() .onEach { data = it delay(100) } .launchIn(coroutineScope) Kotlin Flowに拘らなくてもOK なお、呼び出し先が特にないなら単なるCoroutineで良いと思います。 coroutineScope.launch(Dispatchers.Default){ while(true){ // 定期実行したい処理 getHogeHogeData() delay(100) } } 参考文献
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む