# FJMtSortButton
**Repository Path**: shangzhao/FJMtSortButton
## Basic Information
- **Project Name**: FJMtSortButton
- **Description**: 高仿美团首页分类按钮
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-03-15
- **Last Updated**: 2021-03-15
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
> ## 栗子——高仿美团首页分类按钮(更灵活)
---
> ### 栗子惯例,先上GIF

## 使用姿势
**引入(使用Gradle或者Maven)**
1)Gradle
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
compile 'com.github.FJ917:FJMtSortButton:v1.1'
}
2)Maven
jitpack.io
https://jitpack.io
com.github.FJ917
FJMtSortButton
v1.1
---
#### v1.1版本
## 新增自定义控件DynamicSoreView
实现通过服务器获取的数据,动态添加按钮,可以设置每页显示的个数。
## 使用方法
1)xml文件
```
```
2 )java
```
private void data(){
buttonList = setData();//模拟服务器获取到的按钮列表
//设置界面监听
dynamicSoreView.setiDynamicSore(this);
//控件相关设置
dynamicSoreView.setGridView(R.layout.viewpager_page).init(buttonList);
}
@Override
public void setGridView(View view, final int type, List data) {
List buttonModels= data;
GridView gridView = (GridView) view.findViewById(R.id.gridView);
dynamicSoreView.setNumColumns(gridView);
SortButtonAdapter adapter = new SortButtonAdapter(this,buttonModels);
gridView.setAdapter(adapter);
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView> parent, View view, int position, long id) {
Toast.makeText(context,"第"+type+"页"+position,Toast.LENGTH_LONG).show();
}
});
}
```
#### 说明:修改了1.0里的使用方式,但原来的也可以用,详细参考1.0使用方法
---
#### v1.0版本
## 使用方法
1)xml文件
```
```
2)java文件
1.对自定义控件做一些设置
//设置界面监听
soreButton.setViewControl(this);
//添加界面到list
list = new ArrayList<>();
list.add(R.layout.viewpager_page);
list.add(R.layout.viewpager_page);
list.add(R.layout.viewpager_page_text);
//控件相关设置
//以前
soreButton
//设置选中和未选中指示器图标
.setIndicator(R.drawable.radio1,R.drawable.radio2)
//设置指示器半间距px
.setDistance(10)
//设置view组
.setView(list)
.init();
//修改(废弃了设置参数的方法,但是也可以用,只是建议在xml设置)
soreButton.setView(list).init();
将layout的布局add进去list中,然后调用setView方法把list传过去,
还提供了设置指示器图标的方法,以及指示器间距的方法,最后必须调用初始化方法init进行初始化
这是其中的一个layout布局,其实这里可以添加任意布局文件进去,是不是比美团更灵活呢?
`布局R.layout.viewpager_page`
2.设置soreButton监听事件(具体的可以参考GIt里面的Demo)
public class MainActivity extends AppCompatActivity implements ViewControl {
private SoreButton soreButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
soreButton = (SoreButton) findViewById(R.id.soreButton);
soreButton.setViewControl(this);
}
@Override
public void setView(View view, final int type) {
//这里会返回前面设置进去的View及对应的type,然后就可以进行操作了
}
}
**划重点:上面的list中可以传入任意layout布局,然后通过接口回掉拿到View。比美团更加灵活。**
**[博客地址](http://www.jianshu.com/p/e1631a8fab68)**