- ベストアンサー
AndroidのViewGroup.LayoutParamsとViewGroupクラスの関係について
- AndroidでのViewGroup.LayoutParamsクラスとViewGroupクラスの関係について教えてください。
- ViewGroup.LayoutParamsクラスとViewGroupクラスは、継承の関係にあります。
- 「ViewGroup.LayoutParamsクラス」は、確かに「ViewGroupクラス」でも利用できますが、この書き方には特別な意味はありません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
http://grepcode.com/snapshot/repository.grepcode.com/java/ext/com.google.android/android/4.2.2_r1/ から、 android-4.2.2_r1-sources.jar をダウンロードして、grep 対象はandroid.*以下 >・「A.B」というクラス名だけど、「ネストではない普通のクラス」はあり得る? 命名規則上混乱してしまいます。と言いたいところですが、いくつか検索してみます。 LayoutParamsクラス15クラスに関して言えばありません。 他にもA.Bとなっているクラスはあると思います。いくつか見てみます。一つ一つソースを読んでいるわけではもちろんなく、ソースに検索を掛けているだけなので、厳密に言えるわけではありませんが、参考までになります。 xxx.Engine 2クラス 全てネスト xxx.Sessionクラス 2クラス 全てネスト xxx.Callbackクラス 4クラス 全てネスト xxx.Event 2クラス 全てネスト リスナを定義するインタフェース(interface XxxxxListener) 約150 ネストでないインタフェースが11個ありますが、名前の重複はありません。 個別に検索する必要があるのでいくつか検索してみましたが、検索した範囲では、ネストでない定義かつ、名前の重複はありませんでした。 >「Hoge」クラスではない他のクラスの「ネストクラス」である可能性はあるでしょうか? ざっくり言うと、Foo.LayoutParamsクラス、Bar.LayourParamsクラス両方定義される場合があります。この場合、FooクラスのインスタンスからBar.LayoutParamsは利用してはなりません。 しっかり言うと、クラスドキュメントを確認して、クラスの親子関係をしっかり確認する必要があります。
その他の回答 (1)
- hirotn
- ベストアンサー率59% (147/246)
このようなドキュメントを参照していただければ、継承関係は分かると思います。 http://developer.android.com/reference/android/view/ViewGroup.html |ViewGroup < View < Object |・ViewGroup extends View |・View extends Object となっています。 >ViewGroup.LayoutParamsクラス LayoutParamクラスが、ViewGroupクラスの中で定義された、静的(static)なクラスであることを示しているためです。 http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/view/ViewGroup.java#ViewGroup.LayoutParams ほかでも定義されていて、コンポーネントに適したクラスを使わないといけません、ということを言っているようです。 http://qiita.com/items/ac823eac7ae69072530e 使用例: http://www.javadrive.jp/android/framelayout/index2.html
補足
回答ありがとうございます。 例えばなのですが、「ViewGroup.LayoutParams」みたいに、クラス同士をドットで繋いでいる場合は、必ず「Nested Classes」と解釈して良いのでしょうか? ・「A.B」というクラス名だけど、「ネストではない普通のクラス」はあり得る? ・また「Hoge.LayoutParams」クラスみたいな名称でも、実は「Hoge」クラスではない他のクラスの「ネストクラス」である可能性はあるでしょうか?
お礼
回答ありがとうございました。 調べていただいたみたいで、恐縮です。 参考になりましたー