電子書籍の厳選無料作品が豊富!

Androidで「ViewGroup.LayoutParamsクラス」と「ViewGroupクラス」の関係について教えてください

・継承については、下記のような関係になっていると思うのですが、この時、「ViewGroup.LayoutParamsクラス」と「ViewGroupクラス」はどこで繋がっているのでしょうか?

ViewGroup.LayoutParams < Object
・ViewGroup.LayoutParams extends Object

ViewGroup < View < Object
・ViewGroup extends View
・View extends Object

・「ViewGroup.LayoutParamsクラス」は、確か「ViewGroupクラス」でも利用できたかと思うのですが
・「ViewGroup.LayoutParams」この書き方自体に何か特別な意味があるのでしょうか?

A 回答 (2件)

http://grepcode.com/snapshot/repository.grepcode … から、
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は利用してはなりません。

しっかり言うと、クラスドキュメントを確認して、クラスの親子関係をしっかり確認する必要があります。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
調べていただいたみたいで、恐縮です。
参考になりましたー

お礼日時:2013/06/12 18:56

このようなドキュメントを参照していただければ、継承関係は分かると思います。



http://developer.android.com/reference/android/v …

|ViewGroup < View < Object
|・ViewGroup extends View
|・View extends Object

となっています。

>ViewGroup.LayoutParamsクラス
LayoutParamクラスが、ViewGroupクラスの中で定義された、静的(static)なクラスであることを示しているためです。
http://grepcode.com/file/repository.grepcode.com …

ほかでも定義されていて、コンポーネントに適したクラスを使わないといけません、ということを言っているようです。
http://qiita.com/items/ac823eac7ae69072530e

使用例:
http://www.javadrive.jp/android/framelayout/inde …

この回答への補足

回答ありがとうございます。

例えばなのですが、「ViewGroup.LayoutParams」みたいに、クラス同士をドットで繋いでいる場合は、必ず「Nested Classes」と解釈して良いのでしょうか?
・「A.B」というクラス名だけど、「ネストではない普通のクラス」はあり得る?

・また「Hoge.LayoutParams」クラスみたいな名称でも、実は「Hoge」クラスではない他のクラスの「ネストクラス」である可能性はあるでしょうか?

補足日時:2013/06/06 09:14
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!