自定义TitleBar,简单便捷

2018-06-01  本文已影响0人  buhuiming

BHMAndroid工程:一些常用的工具类,以及常用的控件,主要用来提高开发效率。(GitHub


集成:

    compile 'com.bhm.sdk.bhmlibrary:BHMLibrary:version' (version不定时更新)
    <dependency>
      <groupId>com.bhm.sdk.bhmlibrary</groupId>
      <artifactId>BHMLibrary</artifactId>
      <version>version</version>
      <type>pom</type>
    </dependency>

目前库包含了一些项目中常用的模块,后续会慢慢的添加完善。

一、TitleBar的使用

1.png 2.png

1、XML集成方式:

在layout文件中添加

<com.bhm.sdk.bhmlibrary.views.TitleBar
    android:id="@+id/titleBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:titleBarHeight="50dp" 
    app:titleTextColor="@color/white"
    app:rightTextColor="@color/white"
    app:leftTextColor="@color/white"
    app:titleText="标题"
    app:rightText="完成"
    app:leftText="返回"
    app:leftViewBackgroundResource="@drawable/arrow_a"
    app:isLeftViewShow="true"
    app:isRightViewShow="true"
    app:dividerHeight="1dp"
    app:dividerColor="@color/black"
    app:backGroundColor="@color/colorPrimary"/>

2、继承TitleBarActivity集成方式:

继承TitleBarActivity类, 重写setContentView和initTitleBar方法

@Override
public void initTitleBar(final TitleBar titleBar) {
    titleBar.setTitleBarHeight(150f, false);
    ////titleBar.setTitleBarHeight(50f, true);
    titleBar.setTitleTextColor(R.color.black);
    titleBar.setRightTextColor(R.color.black);
    titleBar.setLeftTextColor(R.color.black);
    titleBar.setTitleText("集成Base");
    titleBar.setRightText("提交");
    titleBar.setLeftText("后退");
    titleBar.setLeftViewBackgroundResource(R.drawable.img_close_source);
    titleBar.setIsLeftViewShow(true);
    titleBar.setIsRightViewShow(true);
    titleBar.setDividerHeight(1f, false);
    titleBar.setDividerColor(R.color.black);
    titleBar.setBackGroundColor(R.color.white);
}

@Override
public View setContentView() {
    return LayoutInflater.from(this).inflate(R.layout.activity_extends_title_bar, rootView, false);
}

3、代码生成titleBar的方式:

    private TitleBar titleBar;
    private View contentView;
    @BindView(R.id.tv_text)
    protected TextView tv_text;

    contentView = LayoutInflater.from(this).inflate(R.layout.activity_java_title_bar, null, false);
    ButterKnife.bind(this, contentView);
    titleBar = TitleBarBuilder.newBuilder(this)
            .createTitleBar()
            .setContentView(contentView)
            .build()
            .setTitleBarHeight(50f, true)
            .setTitleTextColor(R.color.white)
            .setRightTextColor(R.color.white)
            .setLeftTextColor(R.color.white)
            .setTitleText("代码生成")
            .setRightText("提交")
            .setLeftText("后退")
            .setLeftViewBackgroundResource(R.drawable.arrow_a)
            .setIsLeftViewShow(true)
            .setIsRightViewShow(true)
            .setDividerHeight(1f, false)
            .setDividerColor(R.color.black)
            .setBackGroundColor(R.color.colorPrimary);
    tv_text.setText("ssssssssssssssss");

4、xml方法介绍:

app:titleBarHeight设置标题栏的高度,默认48dp
app:dividerHeight设置分割线的高度
app:backGroundColor设置标题栏的背景颜色,默认白色
app:titleTextColort设置标题的颜色,默认黑色
app:titleText设置标题文本
app:rightTextColor设置右边文字颜色,默认黑色
app:rightText设置右边文本
app:leftTextColor设置左边文字颜色,默认黑色
app:dividerColor设置分割线的颜色,默认颜色#e9e9eb
app:leftText设置左边文本
app:isLeftViewShow设置是否显示左边的文本和图标
app:isRightViewShow设置是否显示右边的文本和图标
app:leftViewBackgroundResource设置左边图标的资源
app:rightViewBackgroundResource设置右边图标的资源

5.java方法介绍:

setTitleBarHeight(float height, boolean isDpValue)设置标题栏的高度
setDividerHeight(float height, boolean isDpValue)设置分割线的高度
setDividerColor(int color)设置分割线的颜色
setBackGroundColor(int color)设置标题栏的背景颜色
setTitleText(String title)设置标题文本
setTitleTextColor(int color)设置文本颜色
setRightText(String title)设置右边文本
setRightTextColor(int color)设置右边文字颜色
setLeftText(String title)设置左边文本
setLeftTextColor(int color)设置左边文本颜色
setLeftOnClickListener(OnClickListener listener)设置左边控件点击事件
setRightOnClickListener(OnClickListener listener)设置右边控件点击事件
setTitleTextOnClickListener(OnClickListener listener)设置标题点击事件
setTitleBarOnClickListener(OnClickListener listener)设置标题栏点击事件
setTitleBarOnTwoClickListener(final OnTwoClickListener listener)设置标题栏双击事件
setIsLeftViewShow(boolean isLeftViewShow)设置左边控件是否显示
setIsRightViewShow(boolean isRightViewShow)设置右边控件是否显示
setLeftViewBackgroundResource(int res)设置左边图标的资源
setRightViewBackgroundResource(int res)设置右边图标的资源

此外还有一些获取控件的方法。详细用法请参考demo。

更新日志


1.1.6——1.1.7 添加了7个方法

      app:leftTextSize="14sp"//左边字体大小
      app:titleTextSize="17sp"//标题字体大小
      app:rightTextSize="14sp"//右边边字体大小
      app:leftViewMarginLeft ="20dp"//左边控件到左边的距离
      app:rightViewMarginRight ="20dp"//右边控件到右边的距离
      app:leftTextViewPaddingLeft ="20dp"//左边文字跟左边图标的距离
      app:rightTextViewPaddingRight ="20dp"//右边文字跟右边图标的距离

对应的方法

      titleBar.setTitleTextSize(18);
      titleBar.setLeftTextSize(16);
      titleBar.setRightTextSize(16);
      titleBar.setLeftTextViewPaddingLeft(18, true);
      titleBar.setRightTextViewPaddingRight(18, true);
      titleBar.setLeftViewMarginLeft(20, true);
      titleBar.setRightViewMarginRight(20, true);
上一篇下一篇

猜你喜欢

热点阅读