3

Google Maps v2APIをMvvmCrossv2(vNext)で動作させようとしていますが、いくつかの問題が発生しました。

MvvmCrossでGoogleマップを使用するための例には、MvxBindingMapActivityViewから継承するビューがあります。問題は、これがGoogle Maps v1 APIのMapViewを使用していることですが、このAPIは非推奨であり、Googleはライセンスキーを発行しなくなりました。

Xamarin GoogleMapsv2の例を応用したコードがあります。これはうまく機能します。

https://github.com/xamarin/monodroid-samples/tree/master/MapsAndLocationDemo_v2

しかし、これをMvvmCrossv2で機能させる方法がわかりません。フラグメントも使用しますが、これが現在のバージョンのMvvmCrossでサポートされているかどうかわかりません。

MvvmCrossビューからインテントを起動することでMvvmCrossフレームワークの外でGoogleMapsv2アクティビティを正常に機能させることができます。これは間違いなくオプションですが、MvvmCross内でGoogle Maps v2のサポートがあるかどうか、または関係するハッカーは、それが価値があるよりも多くの問題になるでしょう。

ありがとう!

マシュー

4

1 に答える 1

0

v1(master)とv2(vNext)のマップコードMvvmCrossは、どちらもGoogle Maps v1 APIに依存していたため、新しいアプリのオプションではなくなりました。

一方、 Android v1masterおよびvNextv2にもしっかりと根付いているため、フラグメントのサポートは含まれていません。

したがって、状況の分析は正しいです。


GoogleMapsv2で開発するためのいくつかのオプションは次のとおりです。

  1. 新しいスタイルマップを必要とするページ/タブのアプリ内に非Mvvmアクティビティを追加します。

  2. ExFragmentActivityデータバインディングサポートの有無にかかわらず、-を実装してみてください。

    これを行うには、最初にAndroidのFragmentActivityクラスから継承する必要があり、次にいくつかの追加のメソッドとプロパティを提供する必要があります。詳細については、MvvmCrossモノドロイドアクティビティ内にモノゲームビューを挿入してください

    ExFragmentActivityこれを行うには多くのカットアンドペーストがありますが、データバインディングのないレベルで作業を行うのは簡単なことだと思います。

    さらに進んで、データバインディングも機能させるには、バインディング/インフレコード(周りのコード)を調整する必要があることに気付くかもしれませんLayoutInflater。FragmentManagerが親FragmentActivityにフックする方法を調整する必要がある場合があります。申し訳ありませんが、これを行う方法の詳細はわかりません-これはここでhackeryあり、いくつかの実験が必要になる可能性があると思います。

  3. v3は完全なフラグメントサポートを備えているため、v3(出荷時)に切り替えてフラグメントを使用することは、将来のサポートの1つのオプションです。ただし、古いバージョンからv3への変更は非常に大きいため、プロジェクトのどこにいるかによって、これを行うことは現在のところオプションではない可能性があります。

于 2013-03-26T05:20:26.807 に答える