Android网易云历史搜索和热门标签
最近开发了一个网易云音乐播放器,有这么一个需求,需要展示搜索建议,历史搜索记录
项目地址: https://github.com/shellhub/NetEaseMusic
从效果图可以看到,标签如果太长无法容纳会自动换行,虽然我们可以自己实现自定义View,但是人生苦短没必要重复造轮子,这里推荐谷歌推出的库flexbox-layout
添加依赖
implementation 'com.google.android:flexbox:1.1.0'
代码实现
首先这个布局的话我们可以使用RecyclerView去实现,这里需要使用到RecyclerView的多布局,但是为了简单起见我们只看其中的RecyclerView就可以了。
首先我们在你的Activity或者Fragment中初始化RecyclerView,然后设置RecyclerView的布局管理器,然后就可以了,简单吧,就一行代码
rvHots.setLayoutManager(new FlexboxLayoutManager(getContext()));
完整代码如下
public class HistoryFragment extends Fragment {
private String TAG = TagUtils.getTag(this.getClass());
@BindView(R.id.iv_remove_history)
ImageView ivRemoveHistory;
@BindView(R.id.rvHots)
RecyclerView rvHots;
@BindView(R.id.rvHistory)
RecyclerView rvHistory;
HotSearchAdapter mHotSearchAdapter;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_search_hot