如何在没有ActionBar的情况下使用API​​9中的新主题创建Android应用程序?

时间:2014-08-21 06:39:12

标签: android eclipse android-actionbar

我需要在动作栏中创建应用程序。我将尝试解释如何创建应用程序(可能我缺少一些步骤)。

1.我故意不选择" Holo Light with Dark Action Bar"选项。我认为这使应用程序没有操作栏。 enter image description here 2.默认离开下一页: enter image description here 3.默认离开下一页: enter image description here 4.在下一页,它变得有趣。空白活动的描述表明它创建了一个新的空白活动操作栏。关于空活动的描述:创建一个新的空活动。所以我选择空活动

enter image description here

5.保留默认的下一页。

结果:通常,应用程序是使用ActionBar创建的。

enter image description here enter image description here

尝试了这个解决方案:getActionBar().hide();。在这个解决方案中,ActionBar在几毫秒后被隐藏。

试图使用android:theme =" @android:style / Theme.NoTitleBar"在AndroidManifest.xml->应用程序标签中。但在此解决方案中,应用程序使用旧主题。

enter image description here

我的问题:如何使用新主题创建没有ActionBar的Android应用程序并启用StatusBar?

PS。我记得,大约一年前,在Eclipse中,应用程序是在没有ActionBar的情况下创建的。然后我们手动添加它

4 个答案:

答案 0 :(得分:1)

在您super.onCreate(savedInstanceState);活动的onCreate方法中this.requestWindowFeature(Window.FEATURE_NO_TITLE); this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 之后将其放在正确位置:

this.setContentView(R.layout.activity_example);

请务必将此信息置于{{1}}以避免崩溃

答案 1 :(得分:1)

当你的项目启动时你可以使用公共活动扩展Activity而不是使用ActionBarActivity这也会删除操作栏或者有另一种方式

    <android:theme="@android:style/Theme.NoTitleBar">

或者您可以看到他们可能提供的这些链接

How to hide action bar before activity is created, and then show it again?

Remove android default action bar

答案 2 :(得分:0)

请参阅此代码并根据您的要求进行更改:

更新:

styles.xml:

 <style name="FullscreenTheme" parent="android:Theme.Holo">
    <item name="android:windowActionBar">false</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:actionBarStyle">@style/FullscreenActionBarStyle</item>
    <item name="android:windowActionBarOverlay">true</item>
    <item name="android:windowBackground">@null</item>
    <item name="metaButtonBarStyle">?android:attr/buttonBarStyle</item>
    <item name="metaButtonBarButtonStyle">?android:attr/buttonBarButtonStyle</item>
</style>

<style name="FullscreenActionBarStyle" parent="android:Widget.Holo.ActionBar">
    <item name="android:background">@color/black_overlay</item>
</style>

这些将移除操作栏并保持您的主题不变。

注意:我在这里使用Theme.Holo进行了测试。你可以用你的。

的AndroidManifest.xml

  <activity
        android:name=".GridViewExample"
        android:theme="@style/FullscreenTheme" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

它为您提供没有ActionBar的活动。 希望这能解决你的问题。

答案 3 :(得分:0)

您可以以编程方式执行此操作:

public class ActivityName extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // remove title
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.main);
    }
}

或者您可以通过AndroidManifest.xml文件执行此操作:

<activity android:name=".ActivityName"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>

编辑:

如果您的应用使用任何其他主题,请使用相应的主题名称E.g.对于白色主题@android:style/Theme.Holo.Light.NoActionBar.Fullscreen