Translate

BTemplates.com

Powered by Blogger.

2018年2月2日金曜日

2018-02-02 到達点メモ


二月中に簡単な追加機能を除けば、VoiceTimerもぼちぼち落ち着いてきたはずなのでいい加減新しいアプリの開発を始める。

*言語は全部Kotlinで書いています

で、xmlファイルをデザイン画面でいじっていたら
警告マークが名前の横に表示される部分が出て以下の内容になっている
This is 'TableLayout' layout or its 'LinearLayout' parent is possibly useless

で、調べてみたところ以下の内容を見つけた
ScrollView layout or its RelativeLayout parent is possibly useless

Google翻訳で翻訳した上で、上の回答に限って言えば
RelativeLayoutが1つのビュー(ScrollView)しか含まないため、無用であることを意味します」とのことだった。

それを踏まえてみるに、自分のコードはLinearLayoutの中にTableLayoutを一つだけしか宣言していない。本来、LinearLayoutは、複数での宣言を前提にしているので、LinearLayoutを宣言している意味が無いよという事なのだと思う。

実際に、LinearLayoutの中に、もう一つTableLayoutを入れたところ、
警告マークの表示がなくなった。

あと、遷移の仕方とか度忘れしていて調べなおして初めて知ったのだが

           val intent = Intent(this@MainActivity, ScheduleSettingActivity::class.java)
           startActivity(intent)

のような宣言をすると、何度も画面遷移した場合、参照され続けて
Out of Memoryになるらしいです。
なので以下のように変更したほうが良いらしい

            val intent = Intent(application, ScheduleSettingActivity::class.java)
            startActivity(intent)

参考サイト:[Android] アプリの画面を遷移させる

あと、以下のような書き方をしていた場合

            val intent:Intent = Intent(application, ScheduleSettingActivity::class.java)
            startActivity(intent)


以下のような警告が出た。
Explicitly given type is redundant here less... (Ctrl+F1)
This inspection reports local variables' explicitly given types which are obvious and thus redundant, like
  val f: Foo = Foo()

ざっくりとした意訳だが、「明らかに型の明示がわかるから、型宣言をしなくてもいいよ」という意味らしい。
という訳で以下のように変更した

            val intent = Intent(application, ScheduleSettingActivity::class.java)
            startActivity(intent)

今日はここまで。


0 コメント:

コメントを投稿