問題タブ [declare-styleable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
17750 参照

android - 宣言スタイル可能とスタイルの違い

Android アプリケーションでスタイルなどをいじり始めましたが、これまでのところすべてが機能しています。ガイドの「スタイル」セクションをよく理解しました。

しかし、このスレッドdeclare-stylableのように周りを見回すと、2 つの (と)の違いがよくわかりませんstyle。私の理解declare-styleableでは、指定された属性を取り、それをスタイル可能として指定し、コードから必要に応じて変更します。

しかし、これが実際の動作である場合、レイアウトで属性を定義するだけの方が簡単ではないでしょうか? またはそれを指定するスタイルを宣言しますか?

0 投票する
2 に答える
86213 参照

android - Androidでスタイリング可能な属性を宣言する

declare-styleableコンポーネントのカスタムスタイルを宣言するためのタグに関する貴重なドキュメントがほとんどありません。タグの属性に有効な値のリストを見つけました。それはそれに関しては素晴らしいことですが、それらの値のいくつかを使用する方法を説明していません。attr.xml (標準属性のAndroidソース)を閲覧すると、次のようなことができることがわかりました。formatattr

format属性は明らかに値の組み合わせに設定できます。おそらく、このformat属性は、パーサーが実際のスタイル値を解釈するのに役立ちます。それから私はattr.xmlでこれを発見しました:

これらは両方とも、示されたスタイルに許可された値のセットを宣言しているようです。

だから私は2つの質問があります:

  1. enum値のセットの1つをとることができるスタイル属性と値のセットをとることができるスタイル属性の違いは何flagですか?
  2. declare-styleable(Androidソースコードをリバースエンジニアリングする以外に)どのように機能するかについてのより良いドキュメントを知っている人はいますか?
0 投票する
6 に答える
6078 参照

android - Android ライブラリ プロジェクトでは、declare-styleable を使用しています -- コンパイル方法は?

values/attrs.xml でいくつかの属性を定義したカスタム設定コントロールがあります。会話の焦点を絞るために、values/attrs.xml にある属性の例を次に示します。

属性を使用するには、使用したい場所で xmlns タグを使用します。これは次のようになります。

ここに問題があります。xmlns 定義は LIBRARY のパッケージ名を参照しており、このリソースは LIBRARY プロジェクトで正常にコンパイルされます。ただし、Library プロジェクトを含む Android プロジェクトのパッケージ名は異なり、Android はすべてのリソースをマージしようとします。この xmlns 定義に到達すると、含まれる Android プロジェクトでパッケージ名が異なるため、行き詰まります。

Android プロジェクトを含めてもまだ有効なライブラリ プロジェクトで xmlns 参照を使用するためのアイデアはありますか?

宣言スタイル可能オブジェクトは、Android チームがライブラリを検討したときの単なる見落としでしたか?

0 投票する
1 に答える
296 参照

android - xmlでカスタムAndroidビュークラスを使用すると、ADT for Eclipseで属性ヒントが失われるのは正常ですか?

android.widget.RelativeLayoutを拡張するカスタムクラスMyViewを作成するとします。次に、MyViewを使用するxmlファイルを作成します

xmlファイルを書いているときに、RelativeLayoutからの継承のために、Eclipseに期待するコードヒントや補完を取得できないことに気付きました。これは正常ですか?スタイラブルを作成して、Eclipseがドットを接続するのに役立つかどうかを確認しました。親属性を、SDKのattrs.xml(以下のコード)にあるRelativeLayoutスタイル可能に設定しました。これは何の効果もありませんでした。EclipseはSDKにあるもの以外のスタイラブルを認識していないようです。これは正しいです?

どうもありがとう!

0 投票する
1 に答える
6857 参照

android - Android カスタム レイアウト属性「参照属性」の形式は?

カスタム ビュー (ビューグループを拡張する) があり、 attrs.xmlで定義されたいくつかのカスタム属性を指定しました....

うまくピックアップできる整数ですが、最後のもの - rowlayout- 必要に応じて膨らませる追加のレイアウト ファイルを参照するために使用したいです。しかし、メイン レイアウト ファイルで rowlayout 属性を表現する正しい方法が見つかりません。私が試してみました:

しかし、これは実行時に失敗します:

E/AndroidRuntime(22092): 原因: java.lang.NumberFormatException: 「res/layout/sensorvaluesdata.xml」を整数として解析できません

失敗する

E/AndroidRuntime(22341): 原因: java.lang.NumberFormatException: '?2130903043' を整数として解析できません

興味深いのは、リソース ID がそこに貼り付けられているように見えますが?、先頭にも a が貼り付けられているようです。

私のR.javaファイルには、sensorvaluesdata.

これを行う正しい方法は何ですか?

(情報をJavaソースにハードコーディングでき、正常に動作します....

0 投票する
1 に答える
12128 参照

android - この例の宣言可能な XML タグと、その使用の背後にある理論について説明してもらえますか?

私はBeginning Android 4 Developmentを読んでいて、第5章ではGalleryImageVievsについて話し、その目的を説明せずにdeclare-styleable XMLタグを紹介しています..リファレンスでもいくつかの情報を見つけようとしましたが、運が悪い..例えば次のものがあります。

res/values/attrs.xml

たとえば .java

コードを数回読んだことがありますが、このスタイル可能なGallery1をname属性のみを持つ単一のattr子で定義する目的がよくわかりません..助けてもらえますか? このgalleryItemBackgroundはシステムによって提供されるものですか、それとも私たちが定義するものですか? このコードで何をしているのでしょうか?

助けてくれてありがとう!

0 投票する
1 に答える
9835 参照

android - スタイルとテーマを使用してカスタム属性のデフォルト値を作成する

Viewxml レイアウトで宣言され、ビューのコンストラクター中に読み込まれるカスタムのスタイル可能な属性を作成したカスタム がいくつかあります。私の質問は、xml でレイアウトを定義するときにすべてのカスタム属性に明示的な値を指定しない場合、スタイルとテーマを使用して、Viewコンストラクターに渡されるデフォルト値を設定するにはどうすればよいですか?

例えば:

attrs.xml:

layout.xml (android:簡単にするためにタグを削除):

0 投票する
3 に答える
901 参照

android - Eclipseはもはやカスタム属性を認識していませんか?(アンドロイド)

昨日、私のプロジェクトはうまく構築され、実行されていました。今日、Eclipseは私のカスタム属性を認識しなくなったと判断しました。これを引き起こすような変更をしたことは考えられません。カスタム属性でいっぱいの約2ダースのXMLレイアウトがありますが、それらのいずれも認識しません。レイアウトの1つ(res / layout)は次のとおりです。

これが私の属性ファイル(res / values / attrs.xml)です:

XMLファイルにエラーがあると見なされているため、Rが生成されていないため、IntPref.javaにも問題があります。私は過去8時間、これで髪を引き裂いてきましたが、間違ったことを何も見ることができません。助言がありますか?

0 投票する
1 に答える
4979 参照

android - 宣言スタイル可能のポイントは何ですか?

スタイリング可能な属性を使用して新しいビューを作成しているとします。私はそれらをこのように宣言します(これはドキュメントがそれを行うように言っている方法です

ただし、すべての属性が明らかに同じ名前空間にあるため、これは機能せず、エラーが発生しますError: Attribute "direction" has already been defined

したがって、明らかに重複している属性を次の<declare-styleable>ように外部に移動する必要があります。

しかし、これには2つの疑問があります。

  1. これが機能する場合、正確には何のポイント<declare-styleable>ですか?
  2. 異なるビューで属性の動作を変えたい場合はどうすればよいですか?たとえば、BannerViewの方向がupまたはのみである場合down
0 投票する
1 に答える
233 参照

android - AttributeSetから直接読み取ることができるのに、declare-styleableが必要なのはなぜですか?

次のコンストラクターを使用してカスタムViewサブクラスを作成しました。

ご覧のとおり、XML属性からカスタムの「thingy」属性を取得します。これは完全に正常に機能し、これまでのところ問題はありません。それでは、なぜGoogleは、カスタムビューのXML属性をdeclare-styleablein res/values/attrs.xml(ここで説明で定義し、それらを呼び出すcontext.getTheme().obtainStyledAttributes()ここで説明)を使用して適用するように指示するのですか?