自定义组合控件
来源:互联网 发布:系统同传软件 编辑:程序博客网 时间:2024/05/14 10:46
项目中时常会用到相同的布局,如果每个页面都复制一遍,然后改一下Id,这样的当然可以,不过,不免麻烦,我
们就写一个自己的布局,即自定义组合控件。
我们就以典型的头最为模型,来开始我们的自定义组合控件,其实很简单。
1.先写一个布局,给上Id,定好样式:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="50dp" android:background="#3fc500"> <RelativeLayout android:id="@+id/back" android:layout_width="60dp" android:layout_height="match_parent"> <ImageView android:layout_width="20dp" android:layout_height="20dp" android:src="@mipmap/back" android:layout_centerVertical="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginLeft="15dp"/> </RelativeLayout> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="50dp" android:gravity="center" android:text="我的" android:textColor="#ffffff" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:textSize="20sp" /></RelativeLayout>2.新建一个自定义的类TitleView:
public class TitleView extends RelativeLayout { private RelativeLayout relativeLayout; private TextView textView; public TitleView(Context context, AttributeSet attrs) { super(context, attrs); //加载布局 LayoutInflater.from(context).inflate(R.layout.title_bar, this); //查找控件 relativeLayout = (RelativeLayout) findViewById(R.id.back); textView = (TextView) findViewById(R.id.textView); } //RelativityLayout的点击监听 public void setRelativeLayoutListener(OnClickListener listener) { relativeLayout.setOnClickListener(listener); } //为Text设置标题 public void setTitleText(String title){ textView.setText(title); }}
3.使用:只需要像使用普通控件一样使用就可以了:
public class SecondActivity extends AppCompatActivity { private TitleView titleView; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); titleView = (TitleView) findViewById(R.id.title2); findViewById(R.id.btn2).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(SecondActivity.this, ThirdActivity.class)); } }); titleView.setRelativeLayoutListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); titleView.setTitleText("第二个Activity"); }}
Demo下载
0 0
- 自定义控件-组合控件
- 自定义组合控件,组合模式
- Android自定义组合控件
- android自定义组合控件
- 自定义组合控件
- 1.11 自定义组合控件
- 自定义组合控件
- 自定义组合控件
- 自定义组合控件
- 自定义组合控件.txt
- Android自定义组合控件
- 07自定义组合控件
- 自定义组合控件
- android组合自定义控件
- android 自定义组合控件
- 自定义组合控件
- android 自定义组合控件
- android 自定义组合控件
- OkHttp3 (二)——请求
- NIO与IO比较中的几个概念
- el.jsp
- mongo的sum使用
- 倒计时11天,苹果iOS强制HTTPS迫在眉睫
- 自定义组合控件
- 1110. Complete Binary Tree (25)
- PHP 算法学习之二分法
- spring学习笔记 依赖注入详解
- 胆大心细去“干活”
- 简单重力感应跑步测速应用
- 微信调试之页面缓存问题
- [LeetCode]47. Permutations II && DFS及剪枝
- NVMe到底是什么?用它的SSD有啥优势?