Я думаю, что в вашем коде есть несколько проблем:
1. Пространство имен, которое вы использовали, неверно, просто измените его на:
<androidWidget:RatingBar x:Arguments="{x:Static androidLocal:MainActivity.Instance}" >
</androidWidget:RatingBar>
И используя следующее пространство имен:
xmlns:androidWidget="clr-namespace:Android.Widget;assembly=Mono.Android;targetPlatform=Android"
2. нам также необходим следующий код для инициализации androidWidget:RatingBar
x:Arguments="{x:Static androidLocal:MainActivity.Instance}"
определения Instance
в MainActivity
кода Android:
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
internal static MainActivity Instance { get; private set; } // define Instance
protected override void OnCreate(Bundle bundle)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(bundle);
Instance = this;// init Instance
global::Xamarin.Forms.Forms.Init(this, bundle);
LoadApplication(new App());
}
}
Для более подробной информации, вы можете проверить: https://docs.microsoft.com/en-us/xamarin/xamarin-forms/platform/native-views/xaml
И эта ссылка также включает в себя некоторые полезные образцы, вы можете обратиться к нему.
Обновление:
Да, вы также можете использовать x:Arguments="{x:Static androidForms:Forms.Context}"
, и следующий код работает правильно.
<android:RatingBar x:Arguments="{x:Static androidForms:Forms.Context}" NumStars="5" StepSize="1.0" Rating="{Binding Rating,Mode=TwoWay}" />
Примечание:
Свойства, которые вы использовали в RatingBar, не существуют.
BackgroundColor="Lavender" HorizontalOptions="Center"
Scale="0.4"
StarCount="5" Step="0.5" Margin="0" SelectedColor="Orange"
HeightRequest="40" UnSelectedColor="LightGray" Rate="{Binding Rating,Mode=TwoWay}"