3

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で同様のことを達成するにはどうすればよいですか?

前もって感謝します!

4

3 に答える 3

2

Mono for Android でも「カスタム コントロール」を作成できます。作成したら、axml ファイルに含めることができます。

残念ながら、完全に単純な例は手元にありませんが、複雑な例を次に示します。

https://github.com/slodge/MvvmCross/blob/master/Sample%20-%20CirriousConference/Cirrious.Conference.UI.Droid/Resources/Layout/ChildPage_Twitter.axml

MyControlAndroid でクラスを宣言し、MyNamespaceそのコントロールを継承すると、View次のようなコンストラクターを使用して、XML からの属性の取り込みを含め、カスタム コントロールをセットアップできます。

public MyControl(Context context, IAttributeSet attrs) { /* ... */ }

XML を次のように使用します。

<mynamespace.MyControl android:layout_height='wrap_content' />

この一例は、https://github.com/Cheesebaron/MonoDroid.Horizo​​ntalPagerからのコントロールです。これは、次のような xml を使用して xml から使用できます。

 <mynamespace.controls.HorizontalPager
    android:id="@+id/MyPageHost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    />
于 2012-06-18T23:16:31.317 に答える
0

コンストラクタに入らない理由はありますか? ここに私のコンストラクタがあります:

protected CropImageView(IntPtr javaReference, JniHandleOwnership transfer)
        : base(javaReference, transfer)
    {

    }

crop_image_view xml を拡張すると、Init メソッドによって循環依存が発生します。

私はパブリック、プライベートで試しましたが、運がありません...これが私のコードです: https://github.com/slown1/Xamarin.CircleImageCropper

于 2014-08-15T18:08:58.367 に答える