前言 :最近发现在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