4

Mono Android アプリケーションに ActionBar を実装しようとしています。私のソリューションに ActionBar プロジェクトを含める手順を誰かに教えてもらえますか? この URL https://github.com/xamarin/monodroid-samples/tree/master/ActionBarSherlockで提供されているサンプルが投影されているのを見ました

そのサンプルに ActionBarSherlock プロジェクトの参照を追加するだけでよいですか? そのプロジェクトへの参照を追加しようとすると、「アイテムの親を取得中にエラーが発生しました: 指定された名前 'android:TextAppearance.Holo.Widget.ActionBar.Menu' に一致するリソースが見つかりませんでした」などの多くのエラーが発生します。ファイル abs_styles.xml 内

他の誰かが ActionBarSherlock を Mono Android プロジェクトに正常に追加しましたか? 簡単な例を機能させるための手順を教えてください。

4

1 に答える 1

13

わかりました、これが私がそれを機能させた方法です...

  1. サンプル プロジェクトを開き、リリース モードで「ActionBarSherlock」プロジェクトだけをビルドします。最小ターゲット Android バージョンが 4.0.3 であることを確認してください (必須)

  2. dll を取得して、プロジェクトで参照します。プロジェクトの Android バージョンが 2.2 以上の場合、正常にコンパイルできることがわかりました。プロファイル バージョン 2.1 を使用すると動作しないことがわかりましたが、それが私のアプリだった可能性があります。最小バージョンが低すぎる可能性がありますか? また、「ターゲット」アンドロイドを最新に設定しました...これも役立つかどうかはわかりません。

  3. プロジェクトではなく dll を参照すると言う理由は、正しいインテリセンスが得られるからです。それ以外の場合は、サンプル プロジェクトでわかるように、そうではありません (作業が苦痛になります!)。

  4. プロジェクトに v4 サポート ライブラリへの参照があることを確認してください (Mono.Android.Support.v4)

  5. 最後のステップは、Sherlock テーマを使用するようにデフォルトのテーマを変更する必要があることです。(例として以下の xml を参照)

  6. アクションバーなどを追加するときは、ActionbarSherlock.* 名前空間を使用します...

ActionbarSherlock を追加した後のマニフェストの例:

<manifest ...>
    <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" />
    <application android:label="IDNT" android:theme="@style/Theme.Sherlock.Light.DarkActionBar" android:icon="@drawable/Icon">
    </application>
</manifest>

注意: このすべてに小さな問題があります...プロジェクトの最小バージョンが 3.0 (つまり、私の例では 2.2) 未満で、リンク (つまり、SDK アセンブリのみ) でコンパイルすると、エラー「Mono. Cecil.ResolutionException: Android.Database.IDatabaseErrorHandler' の解決に失敗しました。現在、これに関するサポート メッセージを Xamarin に送信しており、修正が完了したらこの投稿を編集します。

編集: 上記の問題を修正するには、プロジェクト オプション -> アプリケーション -> ターゲット オプションへの最小 Android が LEAST 4.0.3 であることを確認してください。あなたの minSdkVersion はまだ7/8などである可能性があるため、古いAndroidバージョンでも実行されます。これはまた、より高いバージョン用のものをコーディングしないように注意する必要があることも意味します。

于 2013-01-09T22:58:33.213 に答える