重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
方法一:每个Activity都有一个onCreate方法,如下
10年积累的成都网站制作、成都网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有获嘉免费网站建设让你可以放心的选择与我们合作。
public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.history);}
在其中加入一下代码即可去除标题栏
public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏,一定要在setContentView之前setContentView(R.layout.history);}
方法2:在manifest.xml中配置
application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar" !--NoTitleBar就是没有标题栏 --
除了没有标题栏以外,开发者还可以自定义标题栏,让应用更加美观
安卓app中的内置标题栏不同版本差异很大,但无论是2.3以下或4.0以上系统的标题栏,能自定义的属性都很少。在开发Android应用中,想创建一个漂亮的自定义标题栏,有两种方法,
第一,使用第三方框架,如SerlockActionbar。
第二,在XML中头部做一个layout来作为标题栏(实际上就是普通的view)
我使用的是第二种方法,灵活性强些。
在android中去掉标题栏有三种方法,它们也有各自的特点。
1.在代码里实现
[java] view plaincopy
this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏
记住:这句代码要写在setContentView()前面。
2.在清单文件(manifest.xml)里面实现
[java] view plaincopy
application android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar"
这样用可以将整个应用设置成无标题栏,如果只需要在一个Activity设置成一个无标题栏的形式,只要把上面的第三行代码写到某一个Activity里面就可以了。
3.在style.xml文件里定义
[html] view plaincopy
?xml version="1.0" encoding="UTF-8" ?
resources
style name="notitle"
item name="android:windowNoTitle"true/item
/style
/resources
然后面manifest.xml中引用就可以了,这种方法稍麻烦了些。
[html] view plaincopy
application android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/notitle"
其实可以看得出来,第二种方法和第三种方法实质是一样的,只不过第二种方法调用的是系统定义好的style.xml文件,而第三种方法则是在自己的应用里定义style.xml,然后再自己再调用,其实道理是一样的,第三种方法做起来更有成就感。
1.安卓标题栏不显示的原因
活动是按照教材(Android第一行代码)上继承的Activity,但打开主题的styles.xml,会发现
style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"
设定中用到了AppCompat的主题
解决办法就是让所有的活动都继承 AppCompatActivity就行了,如下:
public class 活动 extends AppCompatActivity
2.标题栏无法隐藏原因
在《第一行代码》上学习做自定义标题栏,需要将系统自带的标题栏隐藏掉,使用自定义的标题栏,结果发现,requestWindowFeature(Window.FEATURE_NO_TITLE); 这句代码无效,标题栏无法隐藏
活动的继承
public class FirstActivity extends AppCompatActivity
因为活动是继承AppCompatActivity,所以
requestWindowFeature(Window.FEATURE_NO_TITLE);
这句失效了
解决方法有两种
(1)将AppCompatActivity改为Activity,此时 requestWindowFeature(Window.FEATURE_NO_TITLE);是有效的
(2)在onCreate()方法中加入如下代码:
if (getSupportActionBar() != null){
getSupportActionBar().hide();
}
这样就可以隐藏标题栏了
方法一、在你的那张Activity中onCreate方法中加上下面代码:
?
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main); //软件activity的布局
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar); //titlebar为自己标题栏的布局
但是新的问题又来了,这样是无法深层的定制标题栏的,比如原有的高度和背景都没有发生变化,那有没有好的方法呢?答案是有的、
方法二:
因此先定义一个style,若修改背景请修改android:windowTitleBackgroundStyle
若修改标题栏高度,请修改android:windowTitleSize
例子:
?
?xml version="1.0" encoding="utf-8"?
resources xmlns:android="schemas.android.com/apk/res/android"
style name="CustomWindowTitleBackground"
item name="android:background"#565656/item
/style
style name="test" parent="android:Theme"
item name="android:windowTitleSize"50dp/item
item name="android:windowTitleBackgroundStyle"@style/CustomWindowTitleBackground/item
/style
/resources
在程序的android_manifest.xml中对应activity中添加属性android:theme = "@style/test" 就可以了
?
?xml version="1.0" encoding="utf-8"?
manifest xmlns:android="schemas.android.com/apk/res/android"
package="com.guardian"
android:versionCode="1"
android:versionName="1.0"
application android:icon="@drawable/icon" android:label="@string/app_name"
activity android:name=".Test"
android:label="@string/app_name"
android:theme = "@style/test" //就在这里
intent-filter
action android:name="android.intent.action.MAIN" /
category android:name="android.intent.category.LAUNCHER" /
/intent-filter
/activity
/application
uses-sdk android:minSdkVersion="4" /
/manifest
不管是继承AppCompatActivity还是Activity都适用:
在style.xml定义
在AndroidManifest.xml里面设置下theme属性:
1.在style.xml定义
2.在AndroidManifest.xml里面设置下theme属性