This doc解釋瞭如何爲Android,iOS等創建自定義PageRenderer。我嘗試按照文檔,但不知道爲什麼它不適用於Android。但它適用於iOS。Xamarin.Forms Android自定義ContentPage PageRenderer沒有渲染視圖
共享ContentPage類:
public class SecondPage : ContentPage
{
public SecondPage()
{
Content = new StackLayout
{
Children = {
new Label { Text = "Hello ContentPage" }
}
};
}
}
定製PageRenderer類安卓
[assembly: ExportRenderer(typeof(SecondPage), typeof(SecondPageRenderer))]
namespace RenderFormsTest.Droid
{
public class SecondPageRenderer : PageRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Page> e)
{
base.OnElementChanged(e);
if (e.OldElement != null || Element == null)
{
return;
}
InitView();
}
void InitView()
{
var context = Forms.Context;
string[] os = { "Android", "iOS", "Windows" };
var ll = new LinearLayout(context);
ll.LayoutParameters = new LayoutParams(LayoutParams.MatchParent, LayoutParams.MatchParent);
ll.SetBackgroundColor(Android.Graphics.Color.IndianRed);
var rg = new RadioGroup(context);
for (int index = 0; index < os.Length; index++)
{
rg.AddView(new RadioButton(context) { Text = os[index] });
}
ll.AddView(rg);
AddView(ll);
}
}
}
能否請你告訴我哪裏出了問題?
您能先告訴我們您期望發生什麼以及實際發生了什麼嗎? –
** @GeraldVersluis **期望的結果是,當我導航到SeconPage時,應該顯示(呈現)具有三個單選按鈕的RadioGroup視圖。但目前我只能看到從ContentPage呈現的標籤,即「Hello ContentPage」,沒有任何其他視圖可見(或從平臺特定的自定義SecondPageRenderer類呈現) – user2618875
在Android中,頁面呈現器只是一個視圖組,嘗試更改您的z-index自定義視圖,看看會發生什麼 – Bonelol