欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android自定义Toolbar使用方法详解

程序员文章站 2024-02-25 16:03:33
本篇文章介绍: 如何使用toolbar; 自定义toolbar; 先来看一看效果,了解一下toolbar; 布局文件:

本篇文章介绍:

如何使用toolbar;

自定义toolbar;

先来看一看效果,了解一下toolbar;

Android自定义Toolbar使用方法详解

布局文件:

<android.support.v7.widget.toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/colorprimary"/>

actvity中设置属性:

toolbar toolbar= (toolbar) findviewbyid(r.id.toolbar);
toolbar.setlogo(r.mipmap.ic_launcher);//设置图标
toolbar.settitle("title");//设置主标题
toolbar.setsubtitle("smalltitle");//设置子标题

这样就可以实现上面的效果。

接下来是自定义的toolbar:

Android自定义Toolbar使用方法详解

布局文件:

<com.example.cjj.test.bean.mytoolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorprimary"
    android:minheight="?attr/actionbarsize"
    android:layout_centerinparent="true"
    android:layout_gravity="center"
  >
  </com.example.cjj.test.bean.mytoolbar>

toolbar.xml:

<?xml version="1.0" encoding="utf-8"?>
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android"

  android:layout_width="match_parent"
  android:layout_height="match_parent">

  <imagebutton
    android:id="@+id/mleftbutton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignparentleft="true"
    android:layout_centervertical="true"
    android:background="?attr/colorprimary"
    /> 
  <textview
    android:id="@+id/toolbar_title"
    android:text="title"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerinparent="true"
    android:layout_gravity="center"
    android:gravity="center"
    android:textcolor="@color/white"
    android:textsize="20sp"
    />
  <imagebutton
    android:id="@+id/mrightbutton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignparentright="true"
    android:layout_centervertical="true"
    android:background="?attr/colorprimary"/>
</relativelayout>

新建一个mytoolbar:

public class mytoolbar extends toolbar {
  //布局
  private layoutinflater minflater; 
  //右边按钮
  private imagebutton mrightbutton;
  //左边按钮
  private imagebutton mleftbutton;
  //标题
  private textview mtexttitle;

  private view view;

  public mytoolbar(context context) {
    this(context,null);
  }

  public mytoolbar(context context, attributeset attrs) {
    this(context, attrs, 0);
  }
  public mytoolbar(context context, attributeset attrs, int defstyleattr) {
    super(context, attrs, defstyleattr);

    //初始化函数
    initview();
    setcontentinsetsrelative(10, 10);
    if (attrs != null) {
       setleftbuttonicon(r.mipmap.back_icon);//设置左图标
        //设置点击事件
        setleftbuttononclicklinster(new onclicklistener() {
          @override
          public void onclick(view v) {
            toast.maketext(getcontext(),"left",toast.length_short).show();
          }
        });
        setrightbuttonicon(r.mipmap.nav_more);//设置右图标
         //设置点击事件
        setrightbuttononclicklinster(new onclicklistener() {
          @override
          public void onclick(view v) {
            toast.maketext(getcontext(), "right", toast.length_short).show();
          }
        });
    }
  }
 private void initview() {
    if(view==null){
      //初始化
      minflater= layoutinflater.from(getcontext());
      //添加布局文件
      view=minflater.inflate(r.layout.toolbar,null);
      //绑定控件
      meditsearchview= (edittext) view.findviewbyid(r.id.toolbar_searchview);
      mtexttitle= (textview) view.findviewbyid(r.id.toolbar_title);
      mleftbutton= (imagebutton) view.findviewbyid(r.id.mleftbutton);
      mrightbutton= (imagebutton) view.findviewbyid(r.id.mrightbutton);

      layoutparams layoutparams = new layoutparams(viewgroup.layoutparams.match_parent, viewgroup.layoutparams.wrap_content, gravity.center_horizontal);
      addview(view, layoutparams);
    }
  }
   public void setrightbuttonicon(int icon){

    if(mrightbutton !=null){

      mrightbutton.setimageresource(icon);
      // mrightbutton.setvisibility(visible);
    }

  }
  public void setleftbuttonicon(int icon){

    if(mleftbutton !=null){

      mleftbutton.setimageresource(icon);
      //mleftbutton.setvisibility(visible);
    }

  }

  //设置右侧按钮监听事件
  public void setrightbuttononclicklinster(onclicklistener linster) {
    mrightbutton.setonclicklistener(linster);
  }

  //设置左侧按钮监听事件
  public void setleftbuttononclicklinster(onclicklistener linster) {
    mleftbutton.setonclicklistener(linster);
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。