2013年11月14日木曜日

【アプリ開発】ActionBarSherlockからActionBarActivityへの切替作業まとめ

データフォルダでは「ActionBarSherlock」を使用してアクションバーを実装していましたが、
サポートライブラリ v7 でアクションバーが実装されたため、全面的に切り替えを行いました。

ちょっと調べてみると簡単に切り替えられます、とあったのですが、
細かいところで意外に苦戦しました(^^;

その時に覚書として作業をメモっておきます。
後々まとめます。

事前準備

サポートライブラリに含まれる android-support-v7-appcompatプロジェクトをインポートし、
対象となるアプリの依存するライブラリとして、
プロジェクトの[プロパティー]→[Android]内のライブラリで設定してから、以下の作業を行いました。


変更作業

①継承するクラスの変更
 ・SherlockFragmentActivity → ActionBarActivity
 ・SherlockActivity       → ActionBarActivity


②テーマの変更
 ・setTheme(R.Style.Theme_Sherlock); → setTheme(R.Style.Theme_AppCompat);
 ・setTheme(R.Style.Theme_Sherlock_Translucent);  → setTheme(R.Style.Theme_AppCompat);
                                  (代わりになるのが見つからなかった…)

③メニューアイコン設定の変更
 ・subMenu.getItem().setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
     ↓
  MenuItemCompat.setShowAsAction(subMenu.getItem(), MenuItemCompat.SHOW_AS_ACTION_ALWAYS);


④アクションバー関係の変更
 import android.app.ActionBar; → import android.support.v7.app.ActionBar;
 Activity.getActionBar() → ActionBarActivity.getSupportActionBar()


⑤画像の変更※ActionBarSherlockのプロジェクトから画像を呼び出している箇所
abs__ic_menu_moreoverflow_normal_holo_light → abc_ic_menu_moreoverflow_normal_holo_light



その他

■ActionBarActivityで用意されているテーマ
 Theme.AppCompat
 Theme.AppCompat.Light
 Theme.AppCompat.Light.DarkActionBar


■問題点
・サブメニュー関係がダイアログで表示される
 → リストでの表示は難しい?
・サブメニューが開かなくなる場合がある
 →要調査



■他サイト資料
 →つ部 Android 勉強会 2013年9月 発表資料 (Slide Share)


0 件のコメント:

コメントを投稿