1

私は Android と Java が初めてで、何かを理解していません。View クラスには、接頭辞が付いたパブリック メソッドがあります@ViewDebug.ExportedProperty(category = "layout")。例えば:

@ViewDebug.ExportedProperty(category = "layout")
public boolean isLayoutRtl() {
    return (getLayoutDirection() == LAYOUT_DIRECTION_RTL);
}

View から派生した Android クラスがこれらのパブリック メソッドを呼び出すことができるのに、ビューから派生した別のパッケージ (私のものなど) のクラスがこれらのパブリック メソッドを参照できないのはなぜですか?

4

2 に答える 2

0

コメントを含め、メソッド全体を調べます。

/**
 * Indicates whether or not this view's layout is right-to-left. This is resolved from
 * layout attribute and/or the inherited value from the parent
 *
 * @return true if the layout is right-to-left.
 *
 * @hide
 */
@ViewDebug.ExportedProperty(category = "layout")
public boolean isLayoutRtl() {
    return (getLayoutDirection() == LAYOUT_DIRECTION_RTL);
}

@hideメソッドがパブリック Android API の一部ではないことを意味するアノテーションがあります。

幸いなことに、方向は一定でありgetLayoutDirection()、すでに公開されています。このメソッドを独自の実装にコピーするのは簡単です。

于 2013-10-04T01:30:16.367 に答える
0

のプレフィックスであるパブリック メソッドをいくつか見つけましたが@hide、View から派生した Android クラスはこれらのパブリック メソッドを呼び出すことができます。例えば:

/**
 * Returns whether this View is accessibility focused.
 *
 * @return True if this View is accessibility focused.
 * @hide
 */
public boolean isAccessibilityFocused() {
    return (mPrivateFlags2 & PFLAG2_ACCESSIBILITY_FOCUSED) != 0;
}

私はAndroidとJavaの初心者です。

于 2015-08-27T09:37:59.843 に答える