español - manifest xamarin android
La vista personalizada de Android de Xamarin obtiene un atributo personalizado siempre devuelve el valor predeterminado (1)
Debería usar xmlns:my="http://schemas.android.com/apk/res-auto"
lugar de xmlns:my="http://schemas.android.com/apk/lib/mycomponents"
. El espacio de nombres res-auto detecta automáticamente todos los atributos declarados en su aplicación, incluidos todos los atributos de la biblioteca. Por appcompat
atributos de appcompat
también son accesibles a través del espacio de nombres res-auto.
Estoy haciendo una vista personalizada en xamarin android. Tengo un proyecto de biblioteca de clases separado para esta vista personalizada.
mi archivo de atributos en Resources / Values / attrs.xml se ve así:
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<declare-styleable name="ImageIconView">
<attr name="imageIcon" format="integer" />
<attr name="text" format="string" />
<attr name="alignment" format="enum">
<enum name="left" value="0"/>
<enum name="center" value="1"/>
<enum name="right" value="2"/>
</attr>
</declare-styleable>
</resources>
mi archivo de vista personalizada para la depuración se ve así:
Agrego la referencia a este proyecto y agrego esta vista en mi archivo xaml para una actividad de inicio como esta:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:my="http://schemas.android.com/apk/lib/mycomponents"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<mycomponents.views.ImageIconView
android:layout_width="match_parent"
android:layout_height="150dp"
my:text="text from xml!!!"
my:imageIcon="50"
my:alignment="center"
/>
</LinearLayout>
sin errores de compilación o tiempo de ejecución. Esta vista personalizada se muestra en la actividad de inicio de mi proyecto base. Incluso en la depuración va al método setValuesFromXml en mi archivo de vista personalizado. Pero cualquier tipo de intento de obtener int, cadena o valor enum de IAttribueSet devuelve el valor predeterminado. Pero todavía no recibo ningún error o excepción.
¿Cómo obtendré mi valor de atributo personalizado del archivo xml?