您的位置:首页 > 移动开发 > Android开发

Android中去掉ActionBar的几种方法

2017-09-12 16:58 441 查看
方法一: 

在onCreate方法中添加一句代码

requestWindowFeature(Window.FEATURE_NO_TITLE);

不过这句代码一定要添加到setContentView(R.layout.activity_main); 之前; 

否则会报错(Caused by: android.util.AndroidRuntimeException: requestFeature() must be called before adding content);

方法二:

public class MainActivity extends Activity {
ActionBar actionBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);
actionBar=getActionBar();
actionBar.hide();
}
}

用getActionBar()得到ActionBar对象,用对象调用hide()方法; 
注意配置清单文件中最低版本改为11以上;

方法三:

在配置清单文件中Application选项卡中找到ApplicationNodes中点击对应的Activity,更改右边的theme选项选择System Resources输入 

Theme.light.NoTitleBar选择Theme.light.NoTitleBar再点击ok即可;

还可以通过通过添加代码的方式更改主题; 

在配置文件中通过android:theme=”“属性隐藏:

<activity
android:name=".MainActivity"
android:label="@string/app_name"
<!-- 这行代码便可以隐藏ActionBar -->
android:theme="@android:style/Theme.Light.NoTitleBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

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

还可以通过通过添加代码的方式更改主题;在使用getActionBar()会报空指针异常的解决办法。

先贴上一篇总结的很好的博文:解决方法(大家可以根据这个先排查下可能的问题)

我的异常比较奇葩,根据上面的方法步骤排查之后还是不行,后来就把getActionBar()修改成getSupportActionBar()居然就行了。

暂时还不知道究竟是因为什么原因,大概是一些**版本问题吧,后续将补充这个疑惑,知道本问题的朋友欢迎一切探讨下。

...基于安卓抽屉开发的小案例的监听开关抽屉事件中使用getActionBar获取并设置标题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息