我正尝试在继承自UrohSharp的类中的LinearLayout中添加一个ViewGroup表面(放在另一个视图的左上角)。
展示UrhoSharp在安卓中实现的大多数示例都是直接在主活动中完成的,如下所示:
protected override async void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
var mLayout = new AbsoluteLayout(this);
surface = UrhoSurface.CreateSurface(this);// (this, , true);
mLayout.AddView(surface);
SetContentView(mLayout);
dronModel = await surface.Show<DroneScene>(new ApplicationOptions("Data"));
}或者使用布局文件中的元素:
<Urho.Droid.UrhoSurfacePlaceholder
android:id="@+id/DroidModelId"
android:background="@color/colorPrimary"
android:layout_height="300dp"
android:layout_width="match_parent"/>并将其替换为:
public override async void OnViewCreated(Android.Views.View view, Bundle savedInstanceState)
{
base.OnViewCreated(view, savedInstanceState);
surface = UrhoSurface.CreateSurface(base.Activity);
UrhoSurfacePlaceholder parent = view.FindViewById<UrhoSurfacePlaceholder>(Resource.Id.DroidModelId);
parent.AddView(surface);
droneModel = await surface.Show<DroneModel>(new ApplicationOptions("Data"));但是,我需要做的是创建一个视图来封装Urho代码,并以某种方式引用它,如下所示:
<My.App.Droid.Views.Drone.Model.DroneModelView
android:id="@+id/DroneModel2"
android:layout_marginTop="32dp"
android:layout_marginLeft="32dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_width="55dp"
android:layout_height="55dp"
android:background="@null"/>然后从主活动视图中获取它:
droneModelView = FindViewById<DroneModelView>(Resource.Id.DroneModel2);由于UrhoSurface.CreateSurface需要Activity对象,我不确定如何最好地使用它--据我所知,从继承ViewGroup的类中没有“干净”的方法来访问activity?最终目标是在包含许多其他元素的视图中显示3D模型,这些元素以类似的方式引用。
发布于 2019-09-06 10:26:49
这是一个简单的例子,它将RatingBar添加到CustomView中的LinearLayout,你可以参考它,将RatingBar更改为你的UrohSharp表面
https://stackoverflow.com/questions/57807458
复制相似问题