サポートライブラリ 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()
Theme.AppCompat
Theme.AppCompat.Light
Theme.AppCompat.Light.DarkActionBar
■問題点
・サブメニュー関係がダイアログで表示される
→ リストでの表示は難しい?
・サブメニューが開かなくなる場合がある
→要調査
■他サイト資料
→つ部 Android 勉強会 2013年9月 発表資料 (Slide Share)
変更作業
①継承するクラスの変更・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 件のコメント:
コメントを投稿