<commit_before># TopBar
自定义标题栏TopBar，教你如何制作自定义组件。

### 作者微博：[@安卓攻城师sloop](http://weibo.com/5459430586) 

## 视频课程传送： [【Android UI模板设计】](http://www.imooc.com/learn/247) 

## 截屏图片

![pic1](https://github.com/GcsSloop/TopBar/blob/master/Art/pic_01.png) ![pic2](https://github.com/GcsSloop/TopBar/blob/master/Art/pic_02.png)<commit_msg>说明文件<commit_after># TopBar
自定义标题栏TopBar，教你如何制作自定义组件。

### 作者微博：[@安卓攻城师sloop](http://weibo.com/5459430586) 

## 视频课程传送： [【Android UI模板设计】](http://www.imooc.com/learn/247) 

## 自定义组件一般步骤
#### 1设置自定义属性
#### 2自定义view继承view组件
#### 3在自定义view构造函数中获取自定义属性
#### 4根据自定义属性设置各个组件属性

## 截屏图片

![pic1](https://github.com/GcsSloop/TopBar/blob/master/Art/pic_01.png) ![pic2](https://github.com/GcsSloop/TopBar/blob/master/Art/pic_02.png)
{'fraction_non_alphanumeric': 0.21010638297872342, 'fraction_numerical': 0.05585106382978723, 'mean_word_length': 5.972222222222222, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 4, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7260011', 'n_tokens_mistral': 448, 'n_tokens_neox': 473, 'n_words': 24}