Android 功能自定义标题:无法组合API 11及以上版本的自定义标题
我有一个项目,其中我设定了:Android 功能自定义标题:无法组合API 11及以上版本的自定义标题,android,tabactivity,titlebar,android-tabactivity,custom-titlebar,Android,Tabactivity,Titlebar,Android Tabactivity,Custom Titlebar,我有一个项目,其中我设定了: Minsdk版本设置为10 MainActivity是一个TabActivity onCreate方法中的代码如下所示: super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.main); getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE
- Minsdk版本设置为10
- MainActivity是一个TabActivity
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title);
...
使用以前的设置,一切都很好!但是,如果我将minSdkVersion设置为11或更高,则会出现以下异常:
android.util.AndroidRuntimeException: You cannot combine custom titles with other title features
我不明白为什么会发生这种情况,只是换了个版本。
我在这个网站上对这个问题做了很多报道。我试着设置:
- 主布局中的Theme.NoTitleBar以及清单文件中的Theme.NoTitleBar之后
- 我把这三条线放在所有可能的位置
- 如果我对第一行进行注释,当我调用CustomTitle布局的TextView引用时,会发生NullPointerException
- 我尝试在theme.xml文件声明中设置“windowNoTitle”=true
当API为11或以上时,是否有人可以提供用于设置自定义标题的工作代码(清单和活动代码)?太多了@kinghomer实际上我已经试过在2.2(API 8)上定制它的标题。让我试试API 11,然后再联系你
在此之前,您不需要将Theme.NoTitleBar置于任何位置,可以直接在.java文件中进行控制。给我点时间,我会回来的 由我自己修复。我不知道为什么,但只要在清单文件中为每个活动的声明添加“主题”属性,所有工作: 由此:
<activity
android:name=".CheckActivity"
android:configChanges="orientation"
android:screenOrientation="portrait"
</activity>
android:theme="@style/AppTheme">
res/values-v11定义使用以下代码:
<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
<!-- API 11 theme customizations can go here. -->
</style>
将“android:Theme.Holo.Light”更改为“@android:style/Theme”即可
提示:如果您的项目没有“res/values-v11”,那么请检查您的项目引用的“lib project”。除了接受的答案之外,还有另一种解决方法:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/CustomTheme" >
在基于xml的mainifest中为应用程序
分配一个主题
属性,该属性应适用于所有活动。当您尝试通过ActionBarActivity
或AppcomActivity
扩展活动的同时添加自定义标题栏时,会出现此问题。这两个活动类已经定义了标题栏。
因此,当您尝试添加自己的自定义标题栏时,会出现冲突,即使用哪个标题栏—您的自定义标题栏还是扩展活动提供的标题栏
要解决此问题,只需通过activity
扩展您的活动,它没有任何预定义的标题栏,因此您的活动将被接受,不会产生任何冲突
public void MyActivy extends Activity
{
// your code
}
我刚刚在AndroidManifest.xml
文件的activity
中添加了android:theme=“@android:style/theme”
,效果非常好
<activity
android:name=".MainActivity"
android:theme="@android:style/Theme" >
</activity>
希望这也适用于您。在您的AndroidManifest
文件中,使用此代码段而不是您的代码段
由此:
<activity
android:name=".CheckActivity"
android:configChanges="orientation"
android:screenOrientation="portrait"
</activity>
android:theme="@style/AppTheme">
为此:
android:theme="@style/custom_title">
使用很少使用的标签没有什么用处,例如,任何人都不会跟随标签以外的任何标签值。没有人回答的原因大概是因为你试图做与错误建议完全相反的事情。什么?我的代码有效还是你的?你能发布你的测试代码吗?难以置信!我修好了!我只是在清单文件中每个活动的声明中添加“theme”属性(以前没有)。仍然有同样的问题。但是,只有当我尝试在我的GB手机上运行它时,才会发生这种情况。(在模拟器上运行良好)我支持API级别8-17。这对我很有效。我刚刚将android:theme=“@andriod:style/theme”添加到我的活动中,它成功了。在我的情况下,这是我的蓝牙活动!