Xamarin Monodroid:WP7 => Android和自定义控制?

Arm*_*euz 3 c# custom-view xamarin.android xamarin

我正在使用Xamarin Monodroid将我的一些Windows Phone应用程序移植到Android.

我对Xamarin的东西很新,实际上只是买了一张牌照.

到目前为止,在AXML中重新创建XAML UI非常好,但我遇到了自定义控件的问题.

这就是我所说的自定义控件:

在.NET中,我通过创建继承自'UserControl'类的类创建了一堆控件,我创建了逻辑并设置了内容.然后我用'new my_control()'等创建新实例......

我的一些控件不是以这种方式创建的,而是通过定义XAML来创建UserControl,其中没有特定的逻辑,但是当我需要组合2个或更多控件时(例如,带有文本的彩色正方形,所以Rectangle + TextBlock)我再次需要做'new my_control()'并将其添加到XAML UI(Grid,ListBox,StackPanel等)中的某个位置.

我怎么能用Monodroid实现类似的东西?

提前致谢!

Che*_*ron 6

您可以通过继承View类来创建自己的自定义视图.这可以让你做任何事情.然后,您可以在AXML中引用它:

<your.awesome.namespace.AwesomeViewName
  android:id="@+id/awesomeView"
  android:layout...
  />
Run Code Online (Sandbox Code Playgroud)

只需确保AXML中的命名空间名称全是小写,否则它将不会提取它.

但是如果您只需要一个非常简单的AXML布局,那么您可以创建一个新的AXML文件并使用include标记将其放在那里.

关于Android的一些布局技巧有一些更一般的信息,这对于Android的Mono也适用:https://developer.android.com/resources/articles/layout-tricks-merge.html

  • +1 for**只需确保AXML中的命名空间名称都是小写的,否则它不会取出它** (6认同)