Obecnie używam ActionBarSherlock. Chcę uruchomić SecondActivity
z MainActivity
.Programowo wyłącz android: windowActionBarOverlay styl z paska działań
MainActivity
używa paska akcji z włączonym stylem windowActionBarOverlay
. SecondActivity
używa paska działań z wyłączonym stylem windowActionBarOverlay
. Oto jak wygląda mój 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>
Jednak robiąc to, w SecondActivity
, zdaję sobie sprawę, że nigdy nie można mieć w górę/wstecz przycisk w lewym górnym rogu na pasku akcji. Chociaż wyświetlana jest ikona, nie można jej nacisnąć. Tylko przy użyciu tego samego motywu (ThemeWithActionBarOverlay) jako MainActivity
pojawi się tylko przycisk w górę/w tył. Jeśli jednak pozwolę, aby SecondActivity
używał tego samego motywu co MainActivity
, nie znajduję sposobu, aby wyłączyć zachowanie 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.???
}
Moje pytania są
- Dlaczego aktywność dziecko musi użyć pasek działań z tego samego tematu jako rodziców, aby mieć właściwą góra/tył pokazany przycisk? Czy istnieje sposób, w jaki mogę używać różnych motywów, ale pojawia się przycisk up/back na aktywności dziecka?
- Czy można zmienić styl
windowActionBarOverlay
w czasie wykonywania?
Czy twój drugi problem został rozwiązany? Też szukam tego samego. – Kameswari