当前,我正在使用ActionBarSherlock。我想从MainActivity
启动SecondActivity
。以编程方式关闭操作栏中的android:windowActionBarOverlay样式
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
,我知道我永远不能对操作栏的左上角有一个向上/后退按钮。虽然有图标显示,但不可按。只有使用与MainActivity
相同的主题(ThemeWithActionBarOverlay),才会显示上/下按钮。但是,如果我让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
样式吗?
您的第二个问题是否已解决?我也在寻找同样的东西。 – Kameswari 2014-06-10 12:28:02