Ho visto molti post con persone che vogliono sapere come ottenere attributi personalizzati per un componente personalizzato ma questa non è la mia domanda. Ho creato un componente personalizzato e sto cercando di aggiungere attributi, ma quando aggiungo lo spazio dei nomi nella parte superiore del mio file xml trova solo due attributi personalizzati casuali "paddingEnd" e "paddingStart".Gli attributi personalizzati Android non vengono visualizzati
<resources>
<declare-styleable name="menu_item_attrs">
<attr name="imageId" format="integer" />
<attr name="menuText" format="string" />
</declare-styleable>
</resources>
Questo è un file attrs.xml.
public MenuListItem(Context context, AttributeSet set) {
super(context, set);
TypedArray a = context.obtainStyledAttributes(set, R.styleable.menu_item_attrs);
if (a == null) {
return;
}
CharSequence s = a.getString(R.styleable.menu_item_attrs_menuText);
if (s != null) {
// do something
}
}
Questo è il costruttore della mia classe personalizzata.
<LinearLayout
xmlns:custom="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="0dp"
android:id="@+id/expanding_layout"
android:background="#029eed">
<aaron.testappanim.MenuListItem
android:layout_height="wrap_content"
android:layout_width="wrap_content"/>
</LinearLayout>
Questo è il mio componente in uso. Voglio aggiungere valori a "imageId" e "menuText" ma non sono disponibili. Le uniche cose che mostrano sono relative al padding come mostrato di seguito.
Tutte le idee ragazzi?
questo mi ha aiutato enormemente dopo purga internet per una risposta a questo problema semplice. Grazie! – chaser