android studio引入一个自定义的布局,自定义控件,避免每一个活动中都编写一样布局代码的问题

本次演示的是标题栏上创建按钮,即

android studio引入一个自定义的布局,自定义控件,避免每一个活动中都编写一样布局代码的问题_第1张图片

引入自定义布局和自定义控件的应用十分的广泛,它的形成的效果很多的应用程序都有,我们可以自定义标题栏,因为普通的标题栏就是一行文字,但是,我们可以发现,很多手机软件的标题栏上都有返回,或者 进入的按钮,尤其是全面屏的手机。而且它还能解决一个问题,如果我们只是普通的在主布局中直接写一段布局的代码,可能并不是每一个活动都可以用,也就说,我们必须在每一个布局中都写上同样的布局代码,为了解决这一问题,出现了引入布局,自定义控件的方式,不需要在不同活动中编写同样的代码,我们只需要写一次就可以解决,那么,我们就开始吧。

一共分为两大部分

第一部分:引入一个布局,将图形化界面构造出来,之后,每一个活动都会存在这个界面

第二部分:创建自定义控件的功能,图形化的界面有了,但是它还没有功能,所以得定义一下功能,之后,每一个活动都会存在这个功能。

下面来介绍一下它的具体实现步骤:

第一步,在layout文件夹下创建一个布局源文件,名字为title,root elements选择LinearLayout,创建完成后加入如下代码



    
    

其中的内容无非也就是设置id,长度,宽度,对其方式,大小,颜色,我们着重讲一下weight,它的意思是权重的意思,在这里,我们没有设置Button的权重,而是把只设置了textview的权重为1,达到的效果就是两个按钮占用适合文字大小,而textview会将剩余的地方全部占用,更加的合理。

第二步 将自己创建的title布局加入到主布局当中,在主布局中加入如下代码,我用的是线性布局,所以就加在了线性布局的中间。

 第三步 将android studio自带的标题栏隐藏

protected void onCreate(Bundle savedInstanceState)
{
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ActionBar actionBar=getSupportActionBar();
        if(actionBar!=null)
        {
            actionBar.hide();
        }
}

自定义的标题栏布局已经有了,但是里边的back什么按钮并没有什么功能,所以,现在让我们来赋予它功能。

第四步 创建一个类,继承线性布局,在里边动态加载刚刚设置的布局,然后写入特定的功能,就完成一个自定义控件的设置。

public class TitleLayout extends LinearLayout
{
    public TitleLayout(Context context, AttributeSet arrs)
    {
        super(context,arrs);
        LayoutInflater.from(context).inflate(R.layout.title,this);
        //LayoutInflater的from方法可以获得一个LayoutInflater对象,之后inflate动态加载布局
        Button titleBack=findViewById(R.id.title_back);//下边是对按钮加入监听器也就是功能
        Button titleEdit=findViewById(R.id.title_edit);
        titleBack.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view)
            {
                //加入back的处理动作
            }
        });
        titleEdit.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view)
            {
                //加入进入的处理动作
            }
        });
    }
}

第五步 自定义控件已经定义好了,我们还需要把他加载到布局当中,其中的包名不可省略,一定要用全称


    

总结:就是把自定义的布局,自定义的控件单独写出一个文件当中,想用的时候引入就可以了。

你可能感兴趣的:(安卓开发,android,studio,引入一个自定义的布局,并创建自定义的控件)