UICustomViews 自定义布局和控件
来源:互联网 发布:网络歌曲飘雪 编辑:程序博客网 时间:2024/04/29 22:32
自定义控件
引入布局
创建title.xml
android:background="@drawable/back_bg"
背景图片android:layout_margin="5dp"
控件上下左右偏移距离 也可以marginTop单独指定<include layout="@layout/title"/>
在activity_main.xml 中 就可以显示title.xml 标题栏<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.mason.uicustomviews.MainActivity"> <include layout="@layout/title"/></android.support.constraint.ConstraintLayout>
设置系统自带标题栏隐藏
- 调用getSupportActionBar() 方法获得 ActionBar 实例
- 调用ActionBar的hide()方法 隐藏标题栏
“`java
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();}
}
}
创建自定义控件
- 相同功能的控件
- 新建TitleLayout 继承自LinearLayout
- 重写LinearLayout中带有两个参数的构造函数
- 布局引入TitleLayout 调用这个函数,
- 通过LinearLayout的from()方法构建一个LayoutInflater对象
- 调用inflate()方法加载布局文件
- inflate()接收两个参数 要加载布局的id和加载好的布局再添加一个父布局
- 新建TitleLayout.java
java
public class TitleLayout extends LinearLayout{
public TitleLayout(Context context, AttributeSet attrs){
super(context,attrs);
LayoutInflater.from(context).inflate(R.layout.title,this);
}
} - xml 文件
xml
<com.example.mason.uicustomviews.TitleLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"/> - TitleLayout.java设置点击事件 getContext()
java
public class TitleLayout extends LinearLayout {
public TitleLayout(Context context, AttributeSet attrs) {
super(context, attrs);
LayoutInflater.from(context).inflate(R.layout.title, this);
Button titleEdit = (Button) findViewById(R.id.title_edit);
titleEdit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getContext(), "you click edit", Toast.LENGTH_SHORT).show();
}
});
Button titleBack = (Button) findViewById(R.id.title_back);
titleBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
((Activity) getContext()).finish();
}
});
}
}
- 新建TitleLayout.java
这是我学习Android的笔记,参考书<<第一行代码-第二版>>,感谢郭霖大神
如有不足之处,可以一起讨论
附上郭霖的blog http://blog.csdn.net/guolin_blog
阅读全文
0 0
- UICustomViews 自定义布局和控件
- Andoroid中引用控件和自定义布局
- Android开发之自定义布局和控件
- 设置自定义控件view(自定义相对布局和对话框)
- 自定义布局控件
- 自定义布局控件
- android自定义控件系列教程----视图的测量和布局
- 自定义控件:onMeasure 和 onLayout 实现流动标签布局
- Android初级之路------->布局管理器和创建自定义控件
- android开发之四种基本布局和自定义控件
- 第一行代码 第三章 引入布局和自定义控件
- 【android控件】dialog自定义布局
- 自定义控件--垂直滑动布局
- 创建自定义标题布局控件
- xml布局使用自定义控件
- 自定义控件实现图片布局
- 自定义流式布局控件
- 自定义控件之流式布局
- 零点起飞学Android开发.pdf 免费下载
- KeyShot Pro(3D渲染动画制作工具)官方中文注册版V7.2.109下载 | keyshot7破解版
- MySQL基础(三)多表查询(各种join连接详解)
- UILayout
- 链串子串
- UICustomViews 自定义布局和控件
- array- Median of Two Sorted Arrays
- 技术焦虑和项目deadline
- 第四章:STM32 GPIO各种模式的深入理解
- Java对象生命周期
- 数据结构实验之排序二:交换排序
- java鬼混笔记:springboot之redis保存对象
- RecyclerView
- hadoop-hdfs简介(三)