美文网首页Android
AppCompatActivity和Activity主题问题

AppCompatActivity和Activity主题问题

作者: dev晴天 | 来源:发表于2017-11-09 11:32 被阅读0次

前言 :最近发现在studio中 如果一个类直接继承Activity不显示标题栏,选择菜单不会显示。而直接继承AppCompatActivity 就会显示标题栏 也会显示选择菜单。最后查阅发现是主题不同的原因。

延伸:当你需要隐藏标题栏时又在清单文件application节点的theme设置了下面的属性需要注意了

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

AppCompatActivity 这个狗东西 非得需要标题栏才不会报错,你需要添加主题含有标题栏。然后在你的activity隐藏。Demo如下:

<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@android:style/Theme.NoTitleBar">
      <activity android:name=".TestActivity"
            android:theme="@style/AppTheme">
        </activity>

activity中隐藏

public class TestActivity  extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
      // 此代码在AppCompat主题中不起作用
      //  requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_test);
        getSupportActionBar().hide();
    }
}

然而在直接继承Activity中就不用考虑标题栏问题(也可以设置theme属性)

<activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

参考:
https://blog.csdn.net/james_shu/article/details/53205687

相关文章

网友评论

    本文标题:AppCompatActivity和Activity主题问题

    本文链接:https://www.haomeiwen.com/subject/wtjpmxtx.html