0

私からのさらに別の互換性の問題。

バックグラウンド

の拡張機能であるカスタム Google マップ互換性サポート ライブラリをダウンロードしたので、すべての API で動作するアプリケーションがありCompatibility Support Library、API レベル < 3.0 のマップと共にフラグメントを使用できます。これは、FragmentActivityこのカスタム ライブラリにより、 のサブクラスでもある によってアクティビティを拡張することによって行われMapActivityます。

問題

Action Barまた、さまざまな API レベルでアプリケーション全体にタブ付きを実装する必要があります。を使用してこれを行うことができますActionBarSherlock。ただし、これには、Activity`` byこのカスタム ライブラリを使用して FragmentActivity` をダウンロードして拡張することも含まれます。これは、両方のライブラリ バージョンを使用して拡張できないため、マップを使用できなくなるため、問題になりますか?

質問

アプリケーションで両方の機能を使用するにはどうすればよいですか?

これがうまくいかない場合、どうすればいいですか?

前もって感謝します。

アップデート

そのため、API の 3.0 以上でアクション バーを表示し、そうでない場合は表示しないシステムを実装しました。

これがコードです。

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) {
        ActionBar actionBar = getActionBar();
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        actionBar.setDisplayShowTitleEnabled(false);
        actionBar.show();
} else {
        //Do something else
}

考えられる解決策

アクションバーのように機能して見えるようにするためのいくつかの機能を備えたビューのグループであるカスタムActionBar モジュールを作成するのが最善の方法でしょうか?

4

2 に答える 2

0

FragmentActivitybyを拡張しようとしていますSherlockActivityか?

于 2012-08-08T12:29:36.347 に答える
0

だからここに私が思いついた解決策があります。

ActionBarSherlockGoogleMaps一緒に使用できる互換性ライブラリのバージョンを既に使用していたという事実のため、私にとってはオプションではありませんでした。ライブラリFragmentsを使用すると、ActionBarSherlockこの機能が失われてしまいます。

私の解決策

とをActionBar組み合わせた独自のカスタムを実装することにしました。ViewsTextViews

私は 1 つのクラス拡張Fragment(Android サポート バージョン) を呼び出しており、これにより、extendCCActionBarと呼ばれる 3 つのカスタム オブジェクトが膨張します。これらの 3 つのタブ (名前にあるように) は私のタブとして機能するので、それらに触れたときにオーバーライドし、それらを私たちに渡します。CCTabTextViewCCActionBarMainActivity

Custom Action BarAPI レベルのためにこれを作成する必要があるかどうかを検出するために、次のコードを使用します。

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) {
   //setup a normal action bar because the api level supports it
} else {
   //setup our custom action bar
}

それが私の解決策です。正しい解決策ではないかもしれませんが、私にとってはうまくいきます。

ご不明な点がございましたら、お尋ねください。

于 2012-08-14T13:48:42.353 に答える