1.布局

<HorizontalScrollViewandroid:id="@+id/hsv_hos"android:layout_width="match_parent"android:layout_height="200px"android:fadingEdge="horizontal"android:scrollbars="none"><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="200px"><android.support.v7.widget.RecyclerViewandroid:id="@+id/rv_title"android:layout_width="match_parent"android:layout_height="200px"android:gravity="center"></android.support.v7.widget.RecyclerView></RelativeLayout>
</HorizontalScrollView>

2.适配器

public class HosGridViewAdapter extends RecyclerView.Adapter {private List<DateBean> list;private Context mContext;public int index;public OnRvItemClick onRvItemClick;public HosGridViewAdapter(List<DateBean> list, Context mContext) {this.list = list;this.mContext = mContext;index = 0;}public void setOnHosGridItemClick(OnRvItemClick onRvItemClick) {this.onRvItemClick = onRvItemClick;}@Overridepublic RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {View view = LayoutInflater.from(mContext).inflate(R.layout.item_hosgrid, null, false);return new ViewHolder(view);}@Overridepublic void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {ViewHolder viewHolder = (ViewHolder) holder;viewHolder.name.setText(list.get(position).getDate());viewHolder.name2.setText(list.get(position).getTime());if (position == index) {viewHolder.llitem.setBackground(mContext.getResources().getDrawable(R.drawable.filleheavybg));viewHolder.name.setTextColor(mContext.getResources().getColor(R.color.colorPrimary));viewHolder.name2.setTextColor(mContext.getResources().getColor(R.color.colorPrimary));} else {viewHolder.llitem.setBackground(mContext.getResources().getDrawable(R.drawable.fillelightbg));viewHolder.name.setTextColor(Color.WHITE);viewHolder.name2.setTextColor(Color.WHITE);}viewHolder.itemView.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if (position != index) {index = position;notifyDataSetChanged();}onRvItemClick.OnRvItemClick(position, v);}});}@Overridepublic long getItemId(int position) {return position;}@Overridepublic int getItemCount() {return list == null ? 0 : list.size();}private class ViewHolder extends RecyclerView.ViewHolder {TextView name, name2;LinearLayout llitem;public ViewHolder(View itemView) {super(itemView);name = itemView.findViewById(R.id.name);name2 = itemView.findViewById(R.id.name2);llitem = itemView.findViewById(R.id.ll_item);}}
public interface OnRvItemClick {void OnRvItemClick(int position, View view);
}
}

3.条目布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="300px"android:layout_height="200px"android:paddingLeft="50px"android:paddingRight="50px"><LinearLayoutandroid:id="@+id/ll_item"android:layout_width="200px"android:layout_height="200px"android:background="@drawable/filleheavybg"android:gravity="center"android:orientation="vertical"><TextViewandroid:id="@+id/name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:gravity="center"android:text="日"android:textColor="@color/black"android:textSize="26px" /><TextViewandroid:id="@+id/name2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:layout_marginTop="5px"android:gravity="center"android:text="5/28"android:textColor="@color/black"android:textSize="28px" /></LinearLayout>
</LinearLayout>

4.实体类

public class DateBean {private String date;private String time;public DateBean(String date, String time) {this.date = date;this.time = time;}public String getTime() {return time;}public void setTime(String time) {this.time = time;}public String getDate() {return date;}public void setDate(String date) {this.date = date;}
}

5.使用

private ArrayList<DateBean> list;list = new ArrayList<>();
for (int i = 0; i < 10; i++) {list.add(new DateBean("日期" + i, "事件" + i));
}
Logger.e("数组长度",list.size()+"");
rvTitle.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
HosGridViewAdapter hosGridViewAdapter = new HosGridViewAdapter(list, InquiryActivity.this);
rvTitle.setAdapter(hosGridViewAdapter);
hosGridViewAdapter.setOnHosGridItemClick(new OnRvItemClick() {@Overridepublic void OnRvItemClick(int position, View view) {}
});

6.样式

filleheavybg.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><solid android:color="@color/red"/><corners android:radius="30px"></corners>
</shape>

fillelightbg.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><solid android:color="@color/asred"/><corners android:radius="30px"></corners>
</shape>

HorizontalScrollview+recycleview实现横向滑动相关推荐

  1. 仿网易新闻APP(五)——无限横向滑动菜单(自定义HorizontalScrollView+ViewPager)

    自从Gallery被谷歌废弃以后,Google推荐使用ViewPager和HorizontalScrollView来实现Gallery的效果.的确HorizontalScrollView可以实现Gal ...

  2. Android横向滑动的listview

    一个横向滑动的l:istview效果,其实很简单,有几种实现思路:①:recycleView实现:②:自定义一个HorizontalListView 继承自listview,控制滑动方向从纵向变为横向 ...

  3. Android横向滑动加载更多的控件的实现---HorizontalScrollSlideView

    Android横向滑动加载更多的控件的实现-HorizontalScrollSlideView 需求 之前公司业务要求做一个横向滑动的,可以加载更多的控件,第一时间想到的就是 RecyclerView ...

  4. 安卓仿淘宝首页的分类标签实现(横向滑动)

    淘宝效果 我的效果 使用recycleview实现 很简单,几行代码(只粘贴 了主要代码) GridLayoutManager gridLayoutManager = new GridLayoutMa ...

  5. Android学QQ空间相册浏览类型横向滑动效果显示多图片MyHorizontalScrollView

    Android学QQ空间相册浏览类型横向滑动效果显示多图片MyHorizontalScrollView 我们来定制一下吧 布局文件:activity_main.xml <LinearLayout ...

  6. RecyclerView横向滑动与ViewPager冲突问题

    问题出现场景: TabLayout + ViewPager + Fragment,Fragment中包含一个横向滑动的RecyclerView,出现了左右滑动RecyclerView时会与ViewPa ...

  7. 纯css实现移动端横向滑动列表

    <!DOCTYPE html> <html> <head><title>横向滑动</title><style type="t ...

  8. android 横向滑动日期_移动端横向滑动如何设计?

    所谓的"左右横滑"交互英文名叫做"Horizontal Scrolling Lists",最早可能起源于 Windows Phone 的横向内容滑动设计.用于在 ...

  9. scroll-view 横向滑动无效的问题

    在小程序中写一个横向视图,直接用一个scroll-view,加上scroll-x="true"属性就OK了 xml <scroll-view class="wrap ...

最新文章

  1. startActivity(xx,xx.class) 传递数据
  2. python matplotlib散点图-python-Matplotlib散点图图例
  3. 服务器微信了早上好,微信问候语早上好 微信早上好经典问候语
  4. VS cmake远程调试ubuntu项目生成报错:“Does not match the generator used previously: Ninja“(删除.vs隐藏文件夹)
  5. java怎么看具体被挂起的线程_Java线程的挂起、恢复和终止
  6. 对称加密算法---加密学习笔记(三)
  7. .net VS Java 到底谁吃香?
  8. IOS--CALayer的介绍及使用技巧
  9. 2019年JavaScript状态调查中的新增功能
  10. html1怎样插入视频,HTML视频教程,第1章 HTML初识
  11. 粒子群优化算法的实现
  12. 微信8.0自动发送炸弹python脚本
  13. 常见的主机运维面板有哪些?主机面板全面汇总(国内外)
  14. 数据结构:八大数据结构分类
  15. 自建ngrok私服, 总是提示 Tunnel xxx.ngrok.mydomain.com not found
  16. MacBook Pro 触摸板手势突然失效的解决方案
  17. 双通道IPC如何RTSP取两个通道视频流?
  18. STM32 ADC最大采样频率
  19. Oracle数据库:自然连接natural join,using语句,注意避免写交叉连接
  20. 电子商务网站开发流程[转]

热门文章

  1. jsp页面转换成html,jsp页面修改成html页面
  2. 位列首位!百度智能云开物入选“双跨”平台国家队
  3. 测试用例-微信消息撤回
  4. python按回车_python中回车键
  5. 马丁福勒《重构》读书笔记
  6. 马丁福勒《UML精粹》读书笔记_第八章
  7. 2016版excel_excel中yd是什么意思
  8. MLAT-Autoencoders for Conditional Risk Factors and Asset Pricing---上篇
  9. 谁若97岁死,奈何桥上等三年
  10. 解决Error:All flavors must now belong to a named flavor dimension