当前位置: 首页 > news >正文

眉山市网站建设_网站建设公司_HTTPS_seo优化

受欢迎的大连网站建设,手把手教你建网站,广西做网站,win7 iis配置网站 视频教程常用控件和布局的继承结构#xff0c;如下图#xff1a; #xff08;待续。。。。#xff09; 所有的控件都是直接或间接继承自View的#xff0c;所用的所有布局都是直接或间接继承自ViewGroup的#xff0c;View是Android中最基本的一种UI组件#xff0c;它可以在屏幕上…常用控件和布局的继承结构如下图 待续。。。。 所有的控件都是直接或间接继承自View的所用的所有布局都是直接或间接继承自ViewGroup的View是Android中最基本的一种UI组件它可以在屏幕上绘制一块矩形区域并能响应这块区域的各种事件ViewGroup是一中特殊的View它可以包含很多的子View和子ViewGroup是一个用于放置控件和布局的容器。 我们可以利用上面的继承结构来创建自定义控件创建自定义控件的两种简单方法如下所示。 我们先创建一个UICustomViews项目。 1、引入布局 Android系统已经给每个活动提供了标题栏功能但我们决定先不使用它而是创建一个自定义的标题栏。 只需要两个Button和一个TextView然后在布局中摆好就可以了但是一般我们的程序中可能有很多个活动都需要这样的标题栏如果在每个活动的布局中都编写一遍同样的标题栏代码明显的就会导致代码的大量重复这个时候我们可以引入布局的方式来解决这个问题。我们在layout目录下新建一个布局文件title.xml代码如下 ?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentButtonandroid:idid/title_backandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_gravitycenterandroid:layout_margin5dpandroid:background#000android:textBackandroid:textColor#f00/TextViewandroid:idid/title_textandroid:layout_width0dpandroid:layout_heightwrap_contentandroid:layout_gravitycenterandroid:layout_weight1android:gravitycenterandroid:background#000android:textTitle Textandroid:textColor#f5fandroid:textSize24sp/Buttonandroid:idid/title_editandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_gravitycenterandroid:layout_margin5dpandroid:background#000android:textEditandroid:textColor#f00/ /LinearLayout 我们在LinearLayout中分别加入了两个Batton和一个TextView左边的Button可用于返回右边的Button可用于编辑中间的TextView则可以用来显示一段标题文本。熟悉一下属性其中android:backgroud用于为布局或控件指定一个背景可以使用颜色或者是照片来进行填充。 另外在两个Button中我们都使用了android:layout_margin这个属性它可以指定控件在上下左右方向上偏移的距离当然也可以使用android:layout_marginLeft或者android:layout_marginTop等属性来单独指定控件在某个方向上偏移的距离。 那么标题栏文件title.xml我们已经编写完成那我们如何在程序中使用这个标题栏呢修改acticity_main.xml中的代码如下 ?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parenttools:contextcom.example.uicustomviews.MainActivity include layoutlayout/title//LinearLayout 我们只需要通过一行include语句将标题栏布局引进来就可以了。 但是最后不要忘了在MainActivity中将系统自带的标题栏隐藏掉代码如下 package com.example.uicustomviews;import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.os.Bundle;public class MainActivity extends AppCompatActivity {Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main); ActionBar actionBar getSupportActionBar();if(actionBar ! null){actionBar.hide();}} } 我们调用了getSupportActionBar()方法来获得ActionBar的实例然后再调用ActionBar的hide()方法将标题栏隐藏起来。 使用这种方式不管有多少布局需要标题栏只需要一行include语句就可以了。 测试用例如下2、创建自定义组件 引入布局的技巧确实解决了重复编写布局代码的问题但是如果布局中有一些控件要求能够响应事件我们还是需要在每个活动中为这些控件单独编写一次事件注册的代码。比如说标题栏的返回按钮不管在哪一个活动中都是用来销毁当前活动。为了不增加重复代码我们使用自定义控件的方式来解决。 新建TitleLayout继承自LinearLayout让它成为我们自定义的标题栏控件代码如下 package com.example.uicustomviews;import android.content.Context; import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.AttributeSet; import android.view.LayoutInflater; import android.widget.LinearLayout;public class MainActivity extends AppCompatActivity {Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ActionBar actionBar getSupportActionBar();if(actionBar ! null){actionBar.hide();}}public class TitleLayout extends LinearLayout {public TitleLayout(Context context, AttributeSet attrs) {super(context, attrs);LayoutInflater.from(context).inflate(R.layout.title, this);}} } 我们重写了LinearLayout中带有两个参数的构造函数在布局文件中引入TitleLayout控件就会调用这个构造函数然后在构造函数中需要对标题进行动态加载这就是要LayoutInflator来实现了。通过LayoutInflator的from()方法可以构建出一个LayoutInflater对象然后调用inflator()方法就可以动态加载一个布局文件inflate()接收两个参数第一个参数是要加载的布局文件的id我们传入的是R.layout.title第二个参数是给加载好的布局再添加一个父布局我们指定为TitleLayout,于是直接传入this。 现在自定义控件已经建好3、我们还需要在布局文件中添加这个自定义控件修改activity_main.xml中的代码如下 ?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightmatch_parent com.example.uicustomviews.TitleLayoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_content //LinearLayout 重新运行程序 为标题栏的按钮注册点击事件修改TitleLayout中的代码如下 package com.example.uicustomviews;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;public class TitleLayout extends LinearLayout {public TitleLayout(Context context, AttributeSet attrs) {super(context, attrs);LayoutInflater.from(context).inflate(R.layout.title, this); Button titleBack (Button) findViewById(R.id.title_back);Button titleEdit (Button) findViewById(R.id.title_edit);titleBack.setOnClickListener(new OnClickListener() {Overridepublic void onClick(View v) {((Activity) getContext()).finish();}});titleEdit.setOnClickListener(new OnClickListener() {Overridepublic void onClick(View v) {Toast.makeText(getContext(), You clicked Edit button,Toast.LENGTH_SHORT).show();}});}} 首先通过findViewById()方法得到按钮的实例然后分别调用setOnClickListener()方法给两个按钮注册了点击事件当点击返回按钮时销毁当前的活动当点击编辑按钮时弹出一段文本。 效果如下图
http://www.ihoyoo.com/news/6118.html

相关文章:

  • 哪个网站可以做奖状河南省建设厅网站无事故证明
  • 怎样做网站运营服务网站 建设原则
  • 网站的前端和后端专门做配电箱的网站
  • 石油工程建设协会网站wordpress 极简模板
  • 免费网站备案号码免费中文网站模板html
  • 佛山高端网站建设报价品牌战略管理
  • 外卖做的比较好的网站网页搜索能力属于什么素养
  • 网站建设前期规划方案数据服务器
  • 西班牙网站后缀天津网站建设方案书
  • dw怎么做jsp网站遵义网站开发的公司
  • 做微博网站成全视频观看免费高清第6季
  • 广州网站制作哪家全面手机网站qq代码
  • 视频网站切片怎么做购物网站首页模板下载
  • 网站建设时间规划表腾讯用户体验网站
  • 郑州响应式建站南京网站制作建设
  • 如何登陆公司网站后台关于要求建设网站的请示
  • 济南网站建站技术支持 东莞网站建设洋酒回收
  • 培训网站欣赏性做网站
  • wordpress跨站脚本攻击漏洞太原seo管理
  • 企业网站推广属于付费河东手机站
  • 贵州企业网站百度快速排名优化服务
  • 设计做网站哪家公司好响应式WordPress企业主题
  • app制作网站制作完域名指向另一个网站
  • 解析网站接口怎么做哪个云服务器便宜又好
  • 广州网站建设天维国内免费ip地址
  • 3g免费网站怎么在文档中做网站一点就开
  • 长春城投建设投资有限公司网站做网站需要啥
  • 赣州网站建设资讯百度广告投放电话
  • 网站建设历程重庆网站seo按天计费
  • 綦江网站建设关于配色的网站