℃江让您从精通到入门:ActionBar创建自定义布局
来源:互联网 发布:mac怎么同时开两个窗口 编辑:程序博客网 时间:2024/06/11 01:34
首先来看看我们来看看创建自定义控件所需要的原材料:
我们这里自定义的是一个ActionBar,如下图所示:
第一步、我们要在MainActivity中把原来自带的ActionBar擦除。代码如下:
package com.example.actionbar;import android.support.v7.app.ActionBar;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ActionBar actionBar = getSupportActionBar(); if (actionBar!=null){ actionBar.hide(); } }}
- 第二步、创建一个布局,title_layout.xml,里面是可以被随意调用的样式,代码如下:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#000"> <Button android:layout_gravity="center" android:id="@+id/title_back" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="返回键" /> <TextView android:gravity="center" android:id="@+id/title_text" android:layout_gravity="center" android:textSize="24sp" android:textColor="#fff" android:layout_weight="1" android:text="Title Text" android:layout_width="0dp" android:layout_height="wrap_content" /> <Button android:layout_gravity="center" android:id="@+id/title_edit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="编辑" /></LinearLayout>
- 第三步、创建一个自定义控件的类,继承LinearLayout,并且重写其中带有两个参数的类。然后在构造函数中需要对标题栏布局进行动态加载,这就可以通过LayoutInflate来实现了,其中,声明出多数情况下都都会被重复用到的控件,TitleLayout.java,代码如下:
package com.example.actionbar;import android.app.Activity;import android.content.Context;import android.util.AttributeSet;import android.view.LayoutInflater;import android.view.View;import android.widget.Button;import android.widget.LinearLayout;import android.widget.Toast;/** * 项目名: ViewPager * 包名: com.example.actionbar * 创建者: Dujiang0311 * 创建时间:2017/4/28 12:43 * 描述: 创建一个自定义控件 */public class TitleLayout extends LinearLayout { public TitleLayout(Context context, AttributeSet attrs) { super(context, attrs); LayoutInflater.from(context).inflate(R.layout.title_layout,this); Button tBack = (Button) findViewById(R.id.title_back); Button tEdit = (Button) findViewById(R.id.title_edit); tBack.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { ((Activity)getContext()).finish(); } }); tEdit.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getContext(), "点击了编辑按钮", Toast.LENGTH_SHORT).show(); } }); }}
- 第四步、就可以在想调用的时候调用了,不过布局文件需要添加自定义的控件哟:activity_main.xml的代码如下:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <com.example.actionbar.TitleLayout android:layout_width="match_parent" android:layout_height="wrap_content" /></LinearLayout>
1 0
- ℃江让您从精通到入门:ActionBar创建自定义布局
- ℃江让您从精通到入门:第一次
- 从入门到精通
- iOS开发从入门到精通--手动布局子视图
- iOS开发从入门到精通--自动布局子视图
- CSS+DIV网页样式与布局从入门到精通
- ℃江让您从精通到入门:Toast、Dialog、Notification
- ℃江让您从精通到入门:Android的Camera
- Java从入门到精通 - Swing表格自定义JTable
- VIM从入门到精通(自定义语法高亮)
- Cocos2d-x从入门到精通第六课《自定义绘制》
- JavaWeb从入门到精通(六)-自定义标签
- ARKit从入门到精通(3)-ARKit自定义实现
- ARKit从入门到精通(3)-ARKit自定义实现
- ARKit从入门到精通(3)-ARKit自定义实现
- ARKit从入门到精通(3)-ARKit自定义实现
- ARKit从入门到精通(3)-ARKit自定义实现
- Cocos从入门到精通--《创建第一个项目:HelloWorld》
- 前后端渲染和同构渲染
- 获取签名公钥的代码(未测)
- HttpQueryInfo 用来查询一个HTTP请求的信息。
- Discuz二次开发 教你识别程序目录和文件列表
- KLEE实验01
- ℃江让您从精通到入门:ActionBar创建自定义布局
- 微信开发
- 成功页面
- jsp---隐式对象简单介绍
- 根据动态sku属性,生产动态sku组合
- 神经网络压缩(1):Deep Compression
- Linux命令英文全称
- Ubuntu下实现软件卸载
- Hibernate注解映射字段的位置到底应该放在属性还是方法上