2015-10-15 78 views
1

我想呈現Xamarin表單應用程序中的複選框。在運行時沒有渲染,就我所知,渲染器甚至沒有被調用。Xamarin表單自定義渲染器Android不顯示

有沒有人明白我失蹤或做錯了?

這是我在窗體類:在Droid的

public class LegalCheckbox : View 
{ 
    public LegalCheckbox() 
    { 

    } 
} 

而且我的自定義渲染器類:

public class CheckBoxRenderer : ViewRenderer<LegalCheckbox, CheckBox> 
{ 
    protected override void OnElementChanged (ElementChangedEventArgs<LegalCheckbox> e) 
    { 
     base.OnElementChanged (e); 
     CheckBox control = new Android.Widget.CheckBox(this.Context); 
     control.Checked = false; 
     control.Text = "I agree to terms"; 
     control.SetTextColor (Android.Graphics.Color.Rgb (60, 60, 60)); 
     this.SetNativeControl(control); 
    } 
} 

隨着議會指令:

[assembly: ExportRenderer(typeof(demo.LegalCheckbox), typeof(demo.Droid.CheckBoxRenderer))] 
+0

確實取出空的構造函數有所作爲? – Jason

回答

2

拿起你的代碼,並啓動了一個新的項目。代碼似乎運行正常。

只有我可以認爲這可能會導致你的問題是你的組裝屬性的位置。我通常將它們放置在與渲染器相同的文件中的命名空間聲明之上。

我扔了我在github上創建的,也許你可以發現其中的差異。

https://github.com/DavidStrickland0/Xamarin-Forms-Samples/tree/master/RendererDemo

@Thibault D. Xlabs是個不錯的項目,但它基本上只是所有代碼的開源社區在第一年左右Xamarin.Forms生活想出了。它並不是真正的「他們的實驗室項目」,並且考慮到Alpha Beta和他們發佈頁面中的錯誤數量有多大,最好不要暗示Xamarin公司與它有任何關係。

+0

原來的代碼工作正常.. :)在模擬器我運行它,它不是由於某種原因呈現。我在很多設備上測試過它,並且效果很好。 – nassan

0

我不知道如果這是問題,但是如果您的LegalCheckbox將從繼承而不是View

而且,即使Xamarin.Forms沒有Checkbox控制你仍然可以看看他們的「實驗室」項目位置:

https://github.com/XLabs/Xamarin-Forms-Labs/wiki/Checkbox-Control

(實際上我可以看到,他們從View繼承。 ..)