博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Android UI】自定义带按钮的标题栏
阅读量:5956 次
发布时间:2019-06-19

本文共 2827 字,大约阅读时间需要 9 分钟。

自定义标题栏在很多的android app中很常见,可以说是一种很有用的UI设计方法。自

己也本着学习的态度,经过一番各种坑,终于实现了,现总结如下:

一:大致流程

1.      对指定的android activity设置自定义主题风格,其中自定义主题风格是关键

在android 4.0以上版本中如果使用Theme.Holo或者Theme.Light等,程序会

一直报错误-you cannot combine custom title with other feature titles

2.      在对应的Activity中加入代码

super.onCreate(savedInstanceState);        requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);        setContentView(R.layout.main);        getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.mycustomtitle);

3.      在styles.xml使用如下的自定义主题。

 二:测试MainActivity源代码

MainActivity.java

package com.example.title_bar;import android.app.Activity;import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.Window; import android.widget.Button; public class MainActivity extends Activity { Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.activity_main); getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.titlebarstyle); button=(Button) findViewById(R.id.button1); button.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent=new Intent(MainActivity.this,test_title_bar.class); startActivity(intent); } }); } }

test_title_bar.java

package com.example.title_bar;import android.app.Activity;import android.os.Bundle;import android.view.Window;import android.widget.Button;import android.widget.TextView;public class test_title_bar extends Activity{      @Override        protected void onCreate(Bundle savedInstanceState) {            super.onCreate(savedInstanceState);         // 去标题          //requestWindowFeature(Window.FEATURE_NO_TITLE);            requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);            setContentView(R.layout.titlebartest);              //设置标题为某个layout,标题样式            getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebarstyle);            //设置标题栏的标题            settitle("hello","我是测试页面二","world");        }    private void settitle(String btn1str,String string,String btn2str) {        // TODO Auto-generated method stub                Button btnback=(Button) findViewById(R.id.back);        Button btnnext=(Button) findViewById(R.id.next);        TextView tvtitle=(TextView) findViewById(R.id.title);                btnback.setText(btn1str);        tvtitle.setText(string);        btnnext.setText(btn2str);    }}

三:XML资源文件

titlebarstyle.xml的内容

activity_main.xml

titlebartest.xml

后别忘记在android的manifest配置文件中加上自定义的主题

android:theme="@style/MyTheme"

界面一:

 

界面二:

 

转载地址:http://xprxx.baihongyu.com/

你可能感兴趣的文章
FastDFS存储服务器部署
查看>>
Android — 创建和修改 Fragment 的方法及相关注意事项
查看>>
流程控制: jQ Deferred 与 ES6 Promise 使用新手向入坑!
查看>>
swift基础之_swift调用OC/OC调用swift
查看>>
Devexpress 15.1.8 Breaking Changes
查看>>
推荐JS插件:imagesLoaded,监测图片加载情况并提供相应的事件(加载成功/失败)...
查看>>
Java B2B2C多用户商城 springcloud架构- common-service 项目构建过程(七)
查看>>
杨老师课堂之ArrayList集合常用方法解析
查看>>
ElasticSearch Client详解
查看>>
新零售讲堂之时代下的传统零售业,何去何从?
查看>>
c++读取和写入TXT文件的整理
查看>>
深入动态人脸识别小场景应用,2019年或将迎来爆发期
查看>>
Ionic2 下处理 Android 设备下返回按钮的事件
查看>>
linux安全问答(1)
查看>>
zabbix监控进程的CPU和内存占用量
查看>>
Error creating bean with name 'userServiceImpl': Injection of autowired dependencies failed
查看>>
mybatis update返回值的意义
查看>>
SVNQuery–如何创建更新索引并查询
查看>>
java高质量图片压缩
查看>>
源码解读Linux的limits.conf文件
查看>>