# 关于属性适配的问题
* 你好,如果你是刚使用这个库的人可以不必理会,如果你之前使用了 `TitleBar` 这个库,也就是 `9.0` 版本以下的,在升级到 `9.0` 版本后需要进行适配,否则 `Android Studio` 会报错`编译不通过`,对于这个问题我表示十分抱歉,低版本的 `xml` 属性命名得并不是很规范,现在在 `5.0` 和 `9.0` 版本进行优化,尽管这次的代价比较大,但是我会义无反顾去做,如果你使用了 `TitleBar` 但是不想进行适配,请不要升级依赖库版本。
#### 从 10.2 以上的版本升级到 10.3 版本适配方案
* 修改 `app:titleTextEllipsize` 属性名,请使用 `app:titleOverflowMode` 代替(高版本的 CollapsingToolbarLayout 占用了 titleTextEllipsize 属性)
* 修改 `app:leftTitleTextEllipsize` 属性名,请使用 `app:leftTitleOverflowMode` 代替
* 修改 `app:rightTitleTextEllipsize` 属性名,请使用 `app:rightTitleOverflowMode` 代替
#### 从 9.3 以上的版本升级到 9.5 版本适配方案
* 修改 `app:childPaddingVertical` 属性名,请使用 `app:childVerticalPadding` 代替
* 拆分 `android:childPaddingHorizontal` 属性,将原有属性拆分为以下几个属性:
```text
app:titleHorizontalPadding
app:leftHorizontalPadding
app:rightHorizontalPadding
```
#### 从 5.0 以上的版本升级到 9.0 版本适配方案
* 删除 `app:backButton` 属性,请使用 `app:leftIcon` 代替,全局替换如下:
```text
// 旧版本的用法
app:backButton="false"
// 新版本的用法
app:leftIcon="@null"
```
* 拆分 `android:drawablePadding` 属性,将原有属性拆分为以下几个属性:
```text
app:titleIconPadding
app:leftIconPadding
app:rightIconPadding
```
* 拆分 `android:drawableSize` 属性,将原有属性拆分为以下几个属性:
```text
app:titleIconWidth
app:titleIconHeight
app:leftIconWidth
app:leftIconHeight
app:rightIconWidth
app:rightIconHeight
```
* 属性改名一览,只是简单改名,没有做太多修改,大家可以使用全局替换:
| 5.0 版本 | 9.0 版本 |
| :------------: | :-------------: |
| `app:leftSize` | `app:leftTitleSize` |
| `app:rightSize` | `app:rightTitleSize` |
| `app:leftColor` | `app:leftTitleColor` |
| `app:rightColor` | `app:rightTitleColor` |
| `app:leftTint` | `app:leftIconTint` |
| `app:rightTint` | `app:rightIconTint` |
| `app:lineColor` | `app:lineDrawable` |
* 命名空间和属性都修改(之前用的是系统属性),在这里不推荐大家使用全局替换,而是在代码中一一检查:
| 5.0 版本 | 9.0 版本 |
| :------------: | :-------------: |
| `android:paddingVertical` | `app:childPaddingVertical` |
| `android:paddingHorizontal` | `app:childPaddingHorizontal` |
* 新增左标提和右标题的文本样式设置(之前的版本只有中间标题的):
```text
app:leftTitleStyle
app:rightTitleStyle
```
* 新增中间标题图标设置(之前的版本只有左标题和右标题才有):
```text
app:titleIcon
app:titleIconPadding
app:titleIconTint
```
* 新增图标的显示重心设置(图标在文字的哪个位置上面绘制):
```text
app:titleIconGravity
app:leftIconGravity
app:rightIconGravity
```
#### 从 1.5 以上的版本升级到 5.0 版本适配方案
* 常规适配:单词反向,不再采用下划线形式,而用单词开头大写的方式代替
| 3.5 版本 | 5.0 版本 |
| :------------: | :-------------: |
| title_left | leftTitle |
| title_right | rightTitle |
| icon_left | leftIcon |
| icon_right | rightIcon |
| color_title | titleColor |
| color_right | rightColor |
| color_left | leftColor |
| size_title | titleSize |
| size_right | rightSize |
| size_left | leftSize |
| background_left | leftBackground |
| background_right| rightBackground |
* 特殊适配:去除下划线,并且用单词开头大写的方式代替
| 3.5 版本 | 5.0 版本 |
| :-------: | :---------: |
| bar_style | barStyle |
| line_visible | lineVisible |
| line_color | lineColor |
| line_size | lineSize |
* 极端适配:命名和之前完全不同
| 3.5 版本 | 5.0 版本 |
| :-------: | :-------: |
| icon_back | backButton |
* 无需适配:这个属性没有任何改动
| 3.5 版本 | 5.0 版本 |
| :-----: | :-------: |
| title | title |
#### 不同版本的 XML 属性命名预览
* 3.5 版本 XML 属性命名
```xml
```
* 5.0 版本 XML 属性命名
```xml
```
* 9.0 版本 XML 属性命名
```xml
```