2

我需要帮助。我已经到了那个我尝试了很多事情的地方,我要么:

A) 有学习障碍。B)我在做一些根本错误的事情。

我有一个应用程序,它有一个没有标题栏的主要活动和一堆带有自定义标题栏的其他活动。在 Android 2.3.3 上,一切正常。在最新版本的 Android (4.2) 上,我得到了这个:

cannot combine custom titles with other title features

我正在添加我的自定义标题栏,如下所示:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

    setContentView(R.layout.activity_about_us);

    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.window_title);

    TextView title = (TextView) findViewById(R.id.title);
    title.setText(R.string.title_activity_about_us);
    title.setGravity(Gravity.CENTER);
    title.setTypeface(Typeface.SANS_SERIF, Typeface.BOLD);
}

我正在禁用主屏幕上的标题栏,如下所示:

<style name="MainTableTheme" parent="AppBaseTheme">
    <item name="android:windowNoTitle">true</item>
</style>

我调查了 ActionBarSherlock,但对于看起来如此简单的事情来说,这似乎有点矫枉过正。我还尝试了各种基于阅读 20 多篇 stackoverflow 帖子的“隐藏”栏的方法。最重要的是,它似乎完全不喜欢设置自定义标题栏。

我想做的就是有一个没有标题栏的主要活动和一些其他有标题栏的活动,其中设置了一些简单的东西,比如背景颜色和文本。我该怎么做才能让它在 2.3.3 及更高版本上运行?我对我拥有的所有东西都进行了核对 - 我只需要一些有用的东西。

帮我.....

4

2 回答 2

0

更改<item name="android:windowNoTitle">true</item><item name="android:windowNoTitle">false</item>(因为您确实需要标题栏)并确保AppBaseTheme继承自.NoActionBar-flavoredHolo主题(例如,Theme.Holo.NoActionBar),至少在 API 级别 11+ 上。因此,例如,对于你的onCreate()和这个主题,它可以工作:

<style name="MainTableTheme" parent="android:Theme.Holo.NoActionBar">
    <item name="android:windowNoTitle">false</item>
</style>
于 2013-04-09T23:02:00.340 回答
0

我永远无法弄清楚主要问题,所以我最终创建了一个自定义布局,然后将其包含在每个主要布局中。

自定义布局(window_title.xml):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/linear_layout"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="35dip"
    android:gravity="center_horizontal"
    android:paddingLeft="5dip"
    android:background="#fab41e"
    android:layout_alignParentTop="true">

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="22sp"
        android:paddingRight="5dip"
        android:typeface="sans"
        android:textStyle="bold"
        style="@style/OverlayText"/>
</LinearLayout>

我如何将它包含在每个Activity布局中而无需复制 XML:

<include  layout="@layout/window_title" />

这解决了整个运行时异常问题,我可以在每个Activity我认为合适的地方对其进行修改。

于 2013-04-14T20:32:44.550 回答