我在旧版本的Eclipse中创建了一些应用程序。这样做时,我会输入:
机器人:主题=" @android:风格/ Theme.Black.NoTitleBar.Fullscreen"
在清单文件中,这总是改变了应用程序主题没有问题。最近,我开始使用花哨的新Java-ADT Eclipse程序,当我将上述语句输入清单文件时,应用程序崩溃了。我的意思是当我插入一个设备来测试应用程序时(无论是我的Galaxy II,Galaxy 4还是Galaxy Tab 3 10.1)应用程序安装正确(Eclipse没有错误并声称一切都成功),但在设备上,应用程序加载一个空的黑屏,然后很快崩溃,消息"不幸的是,(app)已停止"。我错过了什么吗?
以下是需要注意的事项:
生成的应用程序是黑色的,没有标题或通知栏(在崩溃之前),当我将主题短语更改为相同的东西时,例如,"全屏"它正确显示带有通知栏但没有标题栏的黑屏(崩溃前)。对我而言,这表明我所输入的短语仍然是今天的标准,也许所需的变更/修改可能在其他地方。
如果我开始一个新项目并运行它,那么" Hello World"应用程序在我的所有设备上正常显示,但如果我将清单文件中的默认主题(android:theme =" @ style / AppTheme")更改为任何其他主题,则应用程序崩溃("很遗憾,应用已停止")。
我尝试通过不同的路线来覆盖这一点:我在 res-values-styles 文件中输入了一系列短语(手动应用&#34的项目) ; NoTitle"和#34;全屏"属性),但这仅适用于我的Galaxy 4和Tab 3 10.1(我的Galaxy II仍显示标题)。此外,该应用程序是白色的,而不是黑色。
此时的任何建议都将是一个很大的帮助!感谢
答案 0 :(得分:6)
不幸的是,这最近已经破裂(至少在Intellij中)。选择其中一个NoTitle主题会在运行时使应用程序崩溃,因为主题需要是AppCompat的后代(至少对于较低的最低SDK版本),但似乎目前没有一个隐藏标题栏。
以下是在正在运行的应用程序和布局预览中隐藏标题栏的工作方法:
1)在AndroidManifest.xml中将主题设置回“AppTheme”:
android:theme="@style/AppTheme"
2)通过添加(to name =“AppTheme”)更新res / values / styles.xml中的主题样式:
<item name="android:windowNoTitle">true</item>
我相信你也可以用'android:windowFullscreen'做这个,如果你还想隐藏动作栏。
当您运行应用程序(模拟器或设备)时,上述两个步骤将起作用,但布局仍将显示标题栏。您可以通过转到布局(例如activity_main.xml),然后单击预览上方的主题(AppTheme)并将其更改为Light.NoTitleBar之类的内容来隐藏处理布局的内容。不幸的是,预览会忽略styles.xml中的主题更改,但希望这会得到修复。
更新2015/06/08:此说明不再适用于Android Studio 1.2.1.1,但有一个简单的修复(应该首先应用):
您现在可以在AndroidManifest.xml中设置android:theme:
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
我不知道还需要哪些其他更改,因为我没有将它们推回到我的项目中。
奇怪的是,我在我的系统上找不到Theme.AppCompat.Black ...而且也找不到作为OP请求的Theme.Black ....
答案 1 :(得分:2)
您的活动会延长ActionBarActivity
,因此需要一个ActionBar。解决方案是扩展FragmentActivity
。
示例:
旧
public class ActivityName extends ActionBarActivity { ... }
新
public class ActivityName extends FragmentActivity { ... }
的AndroidManifest.xml
android:theme="@android:style/Theme.Material.Light.NoActionBar
答案 2 :(得分:0)
谢谢大家。最终为我工作的是放置:
requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow()。setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
在JAVA中的onCreate方法中。
答案 3 :(得分:0)
当我将.darkactionbar更改为.noactionbar并单击Apply changes而不是运行程序时,它起作用了!但是,当我再次启动该应用程序时,操作栏是可见的, 也许是个错误...