当前位置: 代码迷 >> Android >> Android的activity去除标题栏的有关问题
  详细解决方案

Android的activity去除标题栏的有关问题

热度:89   发布时间:2016-04-28 00:30:00.0
Android的activity去除标题栏的问题
本帖最后由 zhaominpro 于 2015-05-08 14:55:28 编辑
代码如下,(《第一行代码》中的)
 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);

    }

其他代码没有改变。
但是为什么我运行的时候却还是会报这样的错: android.util.AndroidRuntimeException: requestFeature() must be called before adding content
这明明就不应该出错的呀
我用的是Android studio写的。模拟器是Android5.0.2的系统,这个有影响吗
------解决思路----------------------
初始化布局前  并不能去掉标题栏   或者你也可以直接在activity配置那里配置有个属性叫noTitleBar貌似


requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);


这两个换个位置就好了
------解决思路----------------------
先 clean 下试试,代码没问题,Android studio我不熟,可能是开发环境的问题,这个在 eclipse 上绝对没问题。
实在不行的话,那你就在manifest里面加 android:theme="@android:style/Theme.Black.NoTitleBar" 这句试试,这句可以用在application中,也可以用在activity中,但是加了这句的话,你的代码里那句就不要加了。理论上来说,在manifest中加上这句比在代码中加这句速度要快。因为系统会先跑manifest。
------解决思路----------------------
 ActionBarActivity 这个是带有actionBar的,有标题不能去掉标题
------解决思路----------------------
引用:
Quote: 引用:

先 clean 下试试,代码没问题,Android studio我不熟,可能是开发环境的问题,这个在 eclipse 上绝对没问题。
实在不行的话,那你就在manifest里面加 android:theme="@android:style/Theme.Black.NoTitleBar" 这句试试,这句可以用在application中,也可以用在activity中,但是加了这句的话,你的代码里那句就不要加了。理论上来说,在manifest中加上这句比在代码中加这句速度要快。因为系统会先跑manifest。

。。。
我知道错哪了,,我之前的代码是:
public class MainActivity extends ActionBarActivity

现在改成extends Activity,两种方法就都可以用了。不改的话两种方法都不能用。
你知道这其中的原因吗??可以的话解释一下


原因是ActionBarActivity是一个包含Title的Activity,当你super.onCreate(savedInstanceState);时实际相当于已经有一部分设置了Title,这个之后才去 requestWindowFeature(Window.FEATURE_NO_TITLE);,晚了!!!
  相关解决方案