2

すべてのAndroidを定義する場所があることを知りたい:名前付き定数とその値。http://developer.android.com/reference/android/widget/LinearLayout.html#attr_android:orientationのhtmlドキュメントではありません

つまり、android:orientationやその他の属性(android:gravitiyなど)のAndroidオープンソースコードリポジトリのソースコードはどこにあるのでしょうか。0はxxを意味し、1はyyを意味しますが、Webサイトのドキュメントからではありません。

どうもありがとう。

4

2 に答える 2

1

プロジェクトの R と同じように、これらは構築された Java としては見つかりません。SDK の android-sdk/platforms/android-#/data/res でそれらの xml 定義を確認できます。

たとえば、android.R.attr.orientation は android-sdk/platforms/android-#/res/values/attrs.xml にあり、プラットフォーム 16 の定義は次のとおりです。

<!-- Standard orientation constant. -->
<attr name="orientation">
    <!-- Defines an horizontal widget. -->
    <enum name="horizontal" value="0" />
    <!-- Defines a vertical widget. -->
    <enum name="vertical" value="1" />
</attr>
于 2012-12-18T06:24:01.887 に答える
1

@Andy McSherry が言っていることは完全に真実ではありません。多くの場合、XML 定数は、ロジックを実行するためにコード (Java またはネイティブ) で一致させる必要があります。

そうは言っても、すべての定数の定義を含む単一のファイルはありません。代わりに、定数は、多くの場合、使用されている場所に対して相対的に定義されます。たとえば、値はas (with value ) および(with value )android:orientationで見つけることができます。LinearLayoutLinearLayout.HORIZONTAL0LinearLayout.VERTICAL1

の可能な値はandroid:gravitiy、実際には別のクラス で定義されてGravityいます。これは、カプセル化の観点からは理にかなっています。特に、重力はさまざまなViewGroup実装などで使用されるためです。

一般に、経験則として、定数が 1 つのクラスにのみ関連する場合、それらは同じクラスで宣言されていることがわかります。それ以外の場合は、別のファイルまたはスーパークラスなどに分解されている可能性があります。

于 2012-12-18T07:34:54.123 に答える