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

Android ToolBar整合实例使用方法详解

程序员文章站 2023-12-20 11:42:04
最近做项目中遇到toolbar因为不同的界面toobar不同为了描述统一的风格。相信大家也非常清楚,大多数toolbar包括以下几个方面 左标题 左边题颜色 左标...

最近做项目中遇到toolbar因为不同的界面toobar不同为了描述统一的风格。相信大家也非常清楚,大多数toolbar包括以下几个方面

  • 左标题 左边题颜色 左标题图标等
  • 标题 标题颜色
  • 右标题 右标题颜色 右标题图标
  • toolbar标题 toolbar颜色 toolbar图标
  • toolbar子标题 toolbar子标题 toolbar子标题颜色

再看一下淘宝以及其他apptoolbar样式界面

Android ToolBar整合实例使用方法详解

Android ToolBar整合实例使用方法详解

下面看下我自定义的custometoolbar继承原生toolbar

package com.ldm.imitatewx;

import android.content.context;
import android.graphics.drawable.drawable;
import android.support.v4.content.contextcompat;
import android.util.attributeset;
import android.view.view;
import android.widget.textview;
import android.widget.toolbar;

/**
 * created by john on 2017/2/16.
 */

public class custometoolbar extends toolbar {
 private textview mtvmaintitleleft;
 private textview mtvmaintitle;
 private textview mtvmainright;
 public custometoolbar(context context) {
 super(context);
 }

 public custometoolbar(context context, attributeset attrs) {
 super(context, attrs);
 }

 public custometoolbar(context context, attributeset attrs, int defstyleattr) {
 super(context, attrs, defstyleattr);
 }

 @override
 protected void onfinishinflate() {
 super.onfinishinflate();
 mtvmaintitleleft= (textview) findviewbyid(r.id.lt_main_title_left);
 mtvmaintitle= (textview) findviewbyid(r.id.lt_main_title);
 mtvmainright= (textview) findviewbyid(r.id.lt_main_title_right);
 }
 //设置主title内容
 public void setmaintitle( string text )
 {
 this.settitle(" ");
 mtvmaintitle.setvisibility(view.visible);
 mtvmaintitle.settext(text);
 }
 //设置主title的内容文字的颜色
 public void settitlecolor(int color )
 {
 mtvmaintitle.settextcolor(color);
 }
 //设置左边title内容
 public void setmaintitleleft(string text )
 {
 mtvmaintitleleft.setvisibility(view.visible);
 mtvmaintitleleft.settext(text);
 }
 //设置左边的title颜色
 public void setmaintitleleftcolor(int color )
 {
 mtvmaintitleleft.settextcolor(color);
 }
 //设置左边icon
 public void setmaintitleleftdrawable(int res )
 {
 drawable left= contextcompat.getdrawable(getcontext(),res);
 left.setbounds(0,0,left.getminimumwidth(),left.getminimumheight());
 mtvmaintitleleft.setcompounddrawables(left,null,null,null);
 }
 //设置右边的title
 public void settvmainrighttext(string text )
 {
 mtvmainright.setvisibility(view.visible);
 mtvmainright.settext(text);
 }
 //设置右边标题的颜色
 public void setmaintitlerightcolor(int color )
 {
 mtvmainright.settextcolor(color);
 }
 //设置右边icon
 public void setmaintitlerightdrawable(int res )
 {
 drawable right= contextcompat.getdrawable(getcontext(),res);
 right.setbounds(0,0,right.getminimumwidth(),right.getminimumheight());
 mtvmaintitleleft.setcompounddrawables(right,null,null,null);
 }
 //设置toolbar颜色
 public void settoolbarbackground(int res )
 {
 this.setbackgroundresource(res);
 }
 //设置toolbar左边的图标
 public void settoolbarleftbackimageres(int res )
 {
 this.setnavigationicon(res);
 }
 //设置toolbar左边文字
 public void settoolbarlefttext(string text ){
 this.setnavigationcontentdescription(text);
 }
 //设置toolbar标题
 public void settoolbartitle(string text )
 {
 this.settitle(text);
 }
 //设置toolbar颜色
 public void settoolbartitlecolor(int color )
 {
 this.settitletextcolor(color);
 }
 //设置toolbar子标题
 public void settoolbarsubtitletext(string text )
 {
 this.setsubtitle(text);
 }
 //设置toolbar子标题的颜色
 public void settoolbarsubtitletextcolor(int color )
 {
 this.setsubtitletextcolor(color);
 }

}

然后布局引用activity_custome_toolbar
因为其实toolbar说白也是view也可以说是一个布局
所以我们只要根据自己需求往里面丢东西就ok,这里可能不全面,希望大家一起完善谢谢!

<?xml version="1.0" encoding="utf-8"?>
<com.ldm.imitatewx.custometoolbar xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res-auto"
 android:layout_width="match_parent"
 android:layout_height="?attr/label_textsize"
 android:background="@android:color/holo_green_light"
 android:fitssystemwindows="true"
 app:contentinsetleft="0dp"
 app:contentinsetstart="0dp"
 app:popuptheme="@style/mypopstyle"
 >
 <textview
 android:id="@+id/lt_main_title_left"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_marginleft="10dp"
 android:text="返回"
 android:gravity="center"
 android:drawableleft="@drawable/ic_back_u"
 android:textcolor="@android:color/white"
 android:singleline="true"
 android:textsize="16sp"
 android:visibility="visible"/>
 <textview
 android:id="@+id/lt_main_title"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_gravity="center"
 android:singleline="true"
 android:textcolor="@android:color/white"
 android:text="标题"
 android:textsize="20sp"
 android:visibility="visible"
 />
 <textview
 android:id="@+id/lt_main_title_right"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_gravity="right"
 android:layout_marginright="10dp"
 android:text="返回"
 android:gravity="center"
 android:drawableright="@drawable/ic_add"
 android:textcolor="@android:color/white"
 android:singleline="true"
 android:textsize="16sp"
 android:visibility="visible"/>

</com.ldm.imitatewx.custometoolbar>

到这里基本结束了!大家可以继续完善!谢谢!

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

上一篇:

下一篇: