• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ViewGroup.LayoutParamsクラス)

AndroidのViewGroup.LayoutParamsとViewGroupクラスの関係について

このQ&Aのポイント
  • AndroidでのViewGroup.LayoutParamsクラスとViewGroupクラスの関係について教えてください。
  • ViewGroup.LayoutParamsクラスとViewGroupクラスは、継承の関係にあります。
  • 「ViewGroup.LayoutParamsクラス」は、確かに「ViewGroupクラス」でも利用できますが、この書き方には特別な意味はありません。

質問者が選んだベストアンサー

  • ベストアンサー
  • hirotn
  • ベストアンサー率59% (147/246)
回答No.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は利用してはなりません。 しっかり言うと、クラスドキュメントを確認して、クラスの親子関係をしっかり確認する必要があります。

re97
質問者

お礼

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

その他の回答 (1)

  • hirotn
  • ベストアンサー率59% (147/246)
回答No.1

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

re97
質問者

補足

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

関連するQ&A

専門家に質問してみよう