android 页面标题栏公用控件
来源:互联网 发布:csgo 电击枪 知乎 编辑:程序博客网 时间:2024/05/16 06:26
在日常开发中,我们的XML布局文件的头部大多数都是相同或类似的。我们正常的业务开发,只需要中间“正文内容”一个布局,最终却成了这种情况,必须是大多数布局文件中都得copy这么一大段。
所以这里提供了一个公用的标题栏控件,贴上代码吧:
package qtt.cellcom.com.cn.widget;import android.content.Context;import android.graphics.Color;import android.util.AttributeSet;import android.view.View;import android.widget.ImageView;import android.widget.RelativeLayout;import android.widget.TextView;/** * 页面标题栏公用控件 */public class Header extends RelativeLayout { public Header(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(); } public Header(Context context, AttributeSet attrs) { super(context, attrs); init(); } public Header(Context context) { super(context); init(); } private void init() { int p = (int) (getResources().getDisplayMetrics().density * 10); setPadding(p, 0, p, 0); } public void setBackgroundColor(int color){setBackgroundColor(color); } public void setTitle(String text) { TextView tv = new TextView(getContext()); tv.setTextSize(22); tv.setTextColor(Color.WHITE); tv.setText(text); tv.getPaint().setFakeBoldText(true); setTitleView(tv); } public void setTitleView(View view) { RelativeLayout.LayoutParams viewLp = new RelativeLayout.LayoutParams(-2, -2); viewLp.addRule(RelativeLayout.CENTER_IN_PARENT); addView(view, viewLp); } public void setRightView(View view, OnClickListener listener) { RelativeLayout.LayoutParams ivLp = new RelativeLayout.LayoutParams(-2, -2); ivLp.addRule(RelativeLayout.CENTER_VERTICAL); ivLp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); addView(view, ivLp); view.setOnClickListener(listener); } public void setRightImageViewRes(int res, OnClickListener listener) { ImageView iv = new ImageView(getContext()); iv.setImageResource(res); setRightView(iv, listener); } public void setLeftView(View view, OnClickListener listener) { RelativeLayout.LayoutParams ivLp = new RelativeLayout.LayoutParams(-2, -2); ivLp.addRule(RelativeLayout.CENTER_VERTICAL); ivLp.addRule(RelativeLayout.ALIGN_PARENT_LEFT); addView(view, ivLp); view.setOnClickListener(listener); } public void setLeftImageVewRes(int res, OnClickListener listener) { ImageView iv = new ImageView(getContext()); iv.setImageResource(res); setLeftView(iv, listener); } }
1.设置标题
<pre name="code" class="java">header.setTitle(getResources().getString(R.string.getpwdback_title));
2.设置左边返回键及回调函数处理
<pre name="code" class="java">header.setLeftImageVewRes(R.drawable.head_left_return,new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubGetPWDBackActivity.this.finish();}});3.设置右边图片及回调函数处理
<pre name="code" class="java">header.setRightImageViewRes(R.drawable.main_right_selector,new OnClickListener() {@Overridepublic void onClick(View v) {OpenActivity(MapZyActivity.class);}});
那如果左边有多个图标或有图标及文字那该如何处理呢?
1.通过自定义view来实现
<pre name="code" class="java">View view=LayoutInflater.from(MainActivity.this).inflate(R.layout.ctrl_main_header_leftview, null); headerView.setLeftView(view, new OnClickListener() { @Override public void onClick(View v) { showCitySelector(); } });
2.右边也是同理。
0 0
- android 页面标题栏公用控件
- Android开发-加载公用布局(如公用标题栏)
- Android,去掉页面标题栏
- 公用标题栏(TitleBar)
- Android 自定义控件 自定义标题栏
- Android自定义控件-常用标题栏
- Android自定义标题栏控件(补充)
- Android通用标题栏组合控件
- Android 组合控件之标题栏
- Android开发页面去掉顶部标题栏
- android中控件公用产生的冲突的解决办法
- android中控件公用产生的冲突的解决办法
- Android 写了两年项目对于公用控件有感
- android 在标题栏中添加控件
- Android学习笔记之自定义控件--标题栏
- Android 功能最强的自定义标题栏控件
- Android获得标题栏,状态栏,控件,屏幕高度
- Android之自定义标题栏(组合控件)
- 话务预测(1) 任务介绍
- appium的安装
- Basic Calculator II
- intent 不能从一个activity跳转到一个Fragment
- 99%的海量数据处理面试题
- android 页面标题栏公用控件
- windows备份远程mysql数据库
- IOS开发UI篇--IOS动画(Core Animation)总结
- tarjan求点的双连通分量
- 优秀的博客
- jquery 为动态生成元素绑定事件
- Region Splitting 过程
- VLC 函数指针的使用
- badboy和jmeter的下载安装及使用