问题:
在去掉标题栏的时候要分别是继承的AppCompatActivity,还是继承的Activity,两种是不同的方式来隐藏标题栏,针对不同的方式来隐藏不同的标题栏。
继承Activity的时候如何隐藏标题栏?
解决办法:
(1).在代码里实现
requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏
此行代码要写在setContentView()前面才会起到作用。
(2)在清单文件(manifest.xml)里面实现
<application android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar">
这样用可以将整个应用设置成无标题栏,如果只需要在一个Activity设置成一个无标题栏的形式,只要把上面的第三行代码写到某一个Activity里面就可以了。
(3)在style.xml文件里定义
<?xml version="1.0" encoding="UTF-8" ?>
<resources>
<style name="notitle">
<item name="android:windowNoTitle">true</item>
</style>
</resources>
然后面manifest.xml中引用就可以了。
<application android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/notitle">
以上就是继承Activity时候实现隐藏标题栏的不同方法,可以选择不同的方式实现。
问题:
继承AppCompatActivity的时候如何隐藏标题栏?
继承了AppCompatActivity的Activity无法通过调用requestWindowFeature(Window.FEATURE_NO_TITLE)来隐藏标题栏。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE); //无效
setContentView(R.layout.activity_main);
}
}
在代码中不能实现我们的要求,那么就要换另外一个途径,现在去尝试在AndroidManifest.xml将主题改为@android:style/Theme.NoTitleBar
<application
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar"//运行出错
>
在Android Monitor中看到错误报告:You need to use a Theme.AppCompat theme (or descendant) with this activity.(你必须使用Theme.AppCompat主题或者其子类主题)
解决办法:
在AndroidManifest.xml中将主题更改为Theme.AppCompat.Light.NoActionBar、Theme.AppCompat.NoActionBar或Theme.AppCompat.DayNight.NoActionBar中的一个,即可隐藏标题栏
<application
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"//成功隐藏标题栏
>
以上就是所有的关于隐藏标题栏的全部内容,其实不难看出无论是继承AppCompatActivity,还是继承的Activity,其实都是相同的方式实现的。
更多资源源码下载:
不一样的RecyclerView优雅实现复杂列表布局
android自定义视频播放器
MediaPlayer和SurfaceView的结合使用
FloatingActionButton的使用
多层Fragment与ViewPager结合使用