現在、私はActionBarSherlockを使用しています。SecondActivity
から起動したいMainActivity
。
MainActivity
windowActionBarOverlay
スタイルをオンにしてアクションバーを使用しています。スタイルをオフにしSecondActivity
てアクションバーを使用しています。windowActionBarOverlay
したがって、ここに私の XML がどのように見えるかを示します。
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:debuggable="false" >
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/ThemeWithActionBarOverlay"
android:screenOrientation="nosensor" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".SecondActivity"
android:theme="@style/ThemeWithoutOverlay">
</activity>
</application>
<resources>
<style name="ThemeWithActionBarOverlay" parent="@style/Theme.Sherlock">
<item name="android:windowActionBarOverlay">true</item>
<item name="abIcon">@drawable/ic_home</item>
<item name="abTitleTextStyle">@style/ActionBarCompatTitle</item>
</style>
<style name="ThemeWithoutOverlay" parent="@style/Theme.Sherlock">
<item name="abIcon">@drawable/ic_home</item>
<item name="abTitleTextStyle">@style/ActionBarCompatTitle</item>
</style>
</resources>
しかし、そうすることでSecondActivity
、アクションバーの左上に上/戻るボタンを配置できないことに気付きました。アイコンは表示されていますが、押すことはできません。と同じテーマ (ThemeWithActionBarOverlay) を使用するMainActivity
だけで、上へ/戻るボタンのみが表示されます。ただし、SecondActivity
と同じテーマを使用するとMainActivity
、動作をオフにする方法がわかりませんwindowActionBarOverlay
。
// SecondActivity
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.history_list_activity);
ActionBar actionBar = this.getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
// How to turn android:windowActionBarOverlay attribute to false during runtime?
// actionBar.???
}
私の質問は
- 適切なアップ/バック ボタンを表示するために、子アクティビティが親アクティビティと同じテーマのアクション バーを使用する必要があるのはなぜですか? さまざまなテーマを使用しながら、子アクティビティに上/戻るボタンを表示する方法はありますか?
windowActionBarOverlay
実行時にスタイルを変更することはできますか?