2011-09-22 10 views
7

私はちょうどクラスVibratingTextViewを作成しました。ウィジェットのライブラリ全体を作成して、正しい方法で実行したいと考えています。(Vibrating TextView)カスタムビューの属性を設定します

このビューのXML:それはandroid:orientationandroid:textあり

<sherif.android.textview.VibratingTextView 
    android:id="@+id/textView2" 
    android:layout_width="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:text="outToRight" > 
</sherif.android.textview.VibratingTextView> 

注意してください。 TextViewLinearLayoutの属性を受け入れます。クラス自体はextends LinearLayoutです。

私の問題はeclipseのXMLエディタにあります。ユーザーがandroid:と入力すると、eclipseのインテリセンスはこの名前空間で使用可能なオプションをユーザーに与えます。

私の場合、属性はです。たとえば、TextTextSizeは表示されません。

android名前空間を使用して)それらを表示させる方法はありますか?

もしそうでなければ、私が定義した属性を持つ私自身の名前空間を作成すべきですか?または、アンドロイドの属性をインポートしてシェリフの属性にする方法がありますか?

渡された属性を使用して、私のクラスのコンストラクタにTextViewを作成しています。正常に動作し、TextViewのすべての属性が正しく設定されています。

私は多くの他のウィジェットを作成するので、私は自分の名前空間が必要かもしれませんが、ベストプラクティスは何ですか?たとえば、alwaysVibrateという属性を作成したいとします。それはsherif:alwaysVibrate="true"のようなものになります。私のライブラリを含めることができ、私の名前空間の属性を表示するようにしたい:私は通常の方法を使用してattr.xmlを使用しますか?

答えて

2

私は最近、まったく同じ問題に直面しました。ここでは、Androidの属性を再利用することはできますが、異なる値を提案するためにそれらを教えることはできませんattrs.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <declare-styleable name="NumberPicker"> 
     <attr name="rangeStart" format="integer|reference" /> 
     <attr name="rangeEnd" format="integer|reference" /> 
     <attr name="speed" format="integer|reference" /> 
     <attr name="current" format="integer|reference" /> 
     <attr name="android:orientation" /> 
    </declare-styleable> 
</resources> 

で私のカスタム属性の宣言があります。実際には、カスタム属性の定義を提案するためにEclipseを教えることさえできません(少なくともこの投稿日時には、今後その機能を見たいと思っています)。

カスタム属性の定義について知りたいことは、 Declaring a custom android UI element using XMLです。

+0

ところで:あなたのカスタムビューの非常にクールな外観効果と私たちとそれを共有するあなたの喜んで私のupvote! – Knickedi

+0

+1しかし、私は本当に悪いニュースが嫌いです:P!私は誰かが解決策を持っていることを望みます –

+0

賞金をいただきありがとうございます。 – Knickedi

関連する問題