工具栏无法显示

时间:2016-12-09 02:43:41

标签: android toolbar appcompatactivity

public abstract class SingleFragmentActivity extends AppCompatActivity

public class CrimeListActivity extends SingleFragmentActivity

以下布局xml文件。

    <?xml version="1.0" encoding="utf-8"?>
     <LinearLayout
         xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_width="match_parent"
         android:layout_height="match_parent">
         <include layout="@layout/content_criminal"/>
     </LinearLayout>

以下是清单

<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.littlebear.android.criminalintent"
          xmlns:android="http://schemas.android.com/apk/res/android">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".CrimeListActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <activity android:name=".CrimePagerActivity"
                  android:label="@string/app_name">

        </activity>
    </application>

</manifest>

以下是content_criminal.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:id="@+id/fragment_container"
                android:layout_width="match_parent"
                android:layout_height="match_parent">



</FrameLayout>

工具栏未显示在我的CrimeListActivity中。

但是在CrimePagerActivity中,哪个类扩展了AppCompatActivity,显示了toolBar。我找不到原因。请帮我。任何建议将被认真考虑。谢谢

3 个答案:

答案 0 :(得分:0)

这是一个新秀的错误。原谅我。我是Android的新手。

 <activity
                android:name=".CrimeListActivity"
                android:label="@string/app_name"
                android:theme="@style/AppTheme.NoActionBar">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN"/>

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

如果我删除&#39; android:theme=@style/AppTheme.NoActionbar'的行,工具栏就会显示出来。谢谢你的时间。

答案 1 :(得分:0)

机器人:主题=&#34; @风格/ AppTheme.NoActionBar&#34;&GT;来自清单的这个标签。您在清单中手动设置了没有操作栏主题。因此,删除此代码,您的代码将完美运行

答案 2 :(得分:0)

如果您使用AppCompatActivity并不意味着您拥有工具栏。 我猜你的AppTheme.NoActionBar扩展了<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.NoActionBar"

然后,父Theme.AppCompat.Light.NoActionBar 已设置

<强> <item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>

然后可以看到Theme.AppCompat.Light.NoActionBar

<style name="Theme.AppCompat.Light.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>
<style name="Theme.AppCompat.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

您只需将此android:theme="@style/AppTheme.NoActionBar修改为android:theme="@style/AppTheme"

即可
<activity
                android:name=".CrimeListActivity"
                android:label="@string/app_name"
                android:theme="@style/AppTheme">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN"/>

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