2012/01/21

Nested weights are bad for performance

突然ですが、私、Eclipse プロジェクトの Warning アイコンが嫌いです。
プロジェクトの横に出ている黄色い三角形のやつです。

Warning が出たままで放っておくなんてありえない!と思います。
徹底的に直して、いつもこのアイコンが出ないようにプロジェクトを作るよう心がけています。
…A型ではないです。
だって、これを放置する習慣がついちゃうと、本当に重要な Warning が出たときに無視してしまうでしょ?

ところが、最近 ADT が XML に lint をかけて警告してくれるようになったのです。
いや、それ自体は良いことです。
ダメな書き方を教えてくれるわけですから。

しかし、
Nested weights are bad for performance
という Warning、修正方法がないみたいです。たぶん。
(参考情報: http://groups.google.com/group/android-developers/browse_thread/thread/9bfd6a5731b038bb/854b654344e382bf?lnk=raot

リンク先のスレッドでも言っていますが、縦方向と横方向が入れ子になるようなレイアウトの場合、 両方に weight 属性を持たせないといけない場合があるはず。
で、その答えが、「ただの Warning だから気にしなくて良いよ」ってのはどうなんでしょうかね。

こういうのは Warning じゃなくて Information に止めておいて欲しい。
または、Java の アノテーションみたいに、「これはわかってるけど、あえてそうしてるの」ってのを明示的に書けるようにしておいて欲しい。
と思います。

と思ったら、Information に変更する方法がありました。結構普通に。

プロジェクトを右クリック → プロパティ → Android Lint Preferences

リストの中から "NestedWeights" を探して、Severity を Information に変更します。

OK を押すと、プロジェクト直下に lint.xml というファイルができます。
中身は以下のような感じ。
<?xml version="1.0" encoding="UTF-8"?>
<lint>
    <issue id="NestedWeights" severity="informational" />
</lint>

これで Warning が出ることはなくなります。
Problems リストには Infos という項目で表示されます。これさえ表示させなくする(Ignore を選ぶ)ことも出来ますが、それはやめておいた方が良いでしょう。
「パフォーマンスが下がるよ」ってのは、知っておくべき情報ですから。

出来れば、全体の警告レベルを下げるのではなく、特定の場所だけ下げられるオプションがあると嬉しいのですが、今のところ見つけられていません
2013/10/2 追記
このエントリを書いた直後のアップデートで、個別に表示させなくする方法が提供されていたようです。(長いこと気づかず…)
穀風: Android Layout の Lint を個別に表示しなくする方法

0 件のコメント: