2016-08-30 4 views
0

내 컨트롤에 대한 사용자 지정 특성을 만들려고합니다. 여기 내 attrs.xml이있다 : 루트에 내 테스트 응용 프로그램에서참조 형식의 Xamarin 사용자 지정 특성이 작동하지 않습니다.

<?xml version="1.0" encoding="utf-8" ?> 
<resources> 
    <declare-styleable name="ImageView"> 
    <attr name="testcustom" format="reference"/> 
    </declare-styleable> 
</resources> 

,이 네임 스페이스의 xmlns를 추가 TestCustom = "http://schemas.android.com/apk/res-auto"나중에

내 레이아웃 파일에서 이미지보기가 있습니다

<ImageView 
    android:src="@drawable/Icon" 
    TestCustom:testcustom="@drawable/Icon"/> 

첫 번째 android : src 속성은 훌륭하지만 TestCustom이 작동하지 않습니다.

주어진 오류는 "어떤 자원이 여기에 무슨 일이 일어나고 있는지 ... 그 (@ 값 'testcustom'에서 드로어 블/사진 아이콘)을

주어진 이름과 일치 그래서 발견? 누구나 어떤 아이디어가?

+0

xmlns : TestCustom ??을 지정 했습니까 ?? – sJy

답변

0

당신은 특정 패키지 네임 스페이스에 xmlns:를 지정해야합니다 예를 들면 다음과 같습니다.

xmlns:custom="http://schemas.android.com/apk/res/com.example.customviews"

com.example.customviews의 패키지 네임 스페이스에 대한 custom:을 나타냅니다 .

당신은 여기에 대한 자세한 내용을보실 수 있습니다 : https://developer.android.com/training/custom-views/create-view.html#customattr

주 : 등의 사용자 정의 속성, 뷰에 관해서 camelCase의 규칙, 요약하자면 그래서

+0

실제로, 나는 이것을 이미 시도했지만, 그것은 나를 위해 작동하지 않았다 ... 나는 어떤 이유로 나는 내가 만든 @drawable을 소문자로 만들었 기 때문에 나는 지금 생각하고있다. 여기에서 무슨 일이 일어나고 있는지 더 자세히 조사하고 다시보고 할 것인지 확신하지 못합니다. –

+0

예, 'aapt.exe'는 대문자/하이픈/등이있는 것을 좋아하지 않기 때문에이 항목에'camelCase' 및/또는 밑줄을 사용하는 것이 좋습니다. –

0

다음 사항을 고려 할 수 있습니다 : 여기서 해결 방법은 사용자 지정 속성을 통해 리소스를 참조 할 때 소문자 이름을 사용하는 것입니다. 분명히 Xamarin은 일반적으로 대문자로 시작하는 리소스를 정상적으로 허용하는 백그라운드에서 작업을하고 있지만 사용자 지정 특성에 대해서는이 문제를 해결하지 못했을 것입니다.

Xamarin 및 사용자 지정 특성을 사용하고 있고 리소스를 참조 할 수없는 경우 소문자로 사용해보십시오 !!!

존 (Jon)이 권장하는대로 리소스에는 대문자를 사용하지 마십시오.

관련 문제