Android标题栏(TitleBar)绝佳解决方案

这多是性能最优、使用最简单,支持自定义的标题栏

Github传送地址,欢迎Star,Pull及issuejava

已投入公司项目多时,没有任何毛病,可胜任任何需求,点击此处下载Demoandroid

想了解实现原理的能够参考文章:纯手工打造一个通用的标题栏TitleBargit

集成步骤

dependencies {
    implementation 'com.hjq:titlebar:3.5'
}
复制代码

属性大全(划重点,要考)

<declare-styleable name="TitleBar">
    <!-- 标题栏的样式 -->
    <attr name="bar_style">
        <enum name="light" value="0x10" />
        <enum name="night" value="0x20" />
        <enum name="transparent" value="0x30" />
    </attr>
    <!-- 标题 -->
    <attr name="title" format="string" />
    <attr name="title_left" format="string"/>
    <attr name="title_right" format="string" />
    <!-- 图标 -->
    <attr name="icon_left" format="reference" />
    <attr name="icon_right" format="reference" />
    <!-- 返回按钮,默认开 -->
    <attr name="icon_back" format="boolean" />
    <!-- 文字颜色 -->
    <attr name="color_title" format="color" />
    <attr name="color_right" format="color" />
    <attr name="color_left" format="color" />
    <!-- 文字大小 -->
    <attr name="size_title" format="dimension" />
    <attr name="size_right" format="dimension" />
    <attr name="size_left" format="dimension" />
    <!-- 按钮背景 -->
    <attr name="background_left" format="reference|color" />
    <attr name="background_right" format="reference|color" />
    <!-- 分割线 -->
    <attr name="line_visible" format="boolean" />
    <attr name="line_color" format="color" />
    <attr name="line_size" format="dimension" />
</declare-styleable>
复制代码

XML示例

点我查看完整的Demo示例github

<com.hjq.bar.TitleBar
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:title="默认的标题栏" />
复制代码

设置监听事件

mTitleBar.setOnTitleBarListener(new OnTitleBarListener() {

    @Override
    public void onLeftClick(View v) {
        ToastUtils.show("左项View被点击");
    }

    @Override
    public void onTitleClick(View v) {
        ToastUtils.show("中间View被点击");
    }

    @Override
    public void onRightClick(View v) {
        ToastUtils.show("右项View被点击");
    }
});
复制代码

统一TitleBar样式

若是对TitleBar的默认样式不满意,能够在Application初始化样式,具体可参考TitleBarLightStyle的实现app

public class XXApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        TitleBar.initStyle(new ITitleBarStyle());
    }
}
复制代码

框架亮点

  • 性能最佳:不使用LayoutInflater,而使用代码建立View的形式框架

  • 体验最优:TitleBar默认样式效果已经很是好,可下载Demo测试ide

  • 支持夜间模式:能够直接引用框架中的TitleBarNightStyle样式布局

  • 支持操控子控件:能够在代码中获取TitleBar的子控件进行调用相关的API性能

  • 支持自定义布局:可将TitleBar当作FrameLayout使用,直接在XML中自定义布局测试

  • 兼容沉浸式状态栏:兼容Github的沉浸式状态栏框架,达到彻底沉浸的效果

  • 框架兼容性良好:本框架不依赖任何第三方库,支持兼容全部的安卓版本

  • 支持全局配置样式:能够在Application中初始化TitleBar样式,达到一劳永逸的效果

Android技术讨论Q群:78797078

最后记得点赞 + Star

相关文章
相关标签/搜索