В настоящее время я использую 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
во время выполнения?