HorizontalScrollview+recycleview实现横向滑动
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实现横向滑动相关推荐
- 仿网易新闻APP(五)——无限横向滑动菜单(自定义HorizontalScrollView+ViewPager)
自从Gallery被谷歌废弃以后,Google推荐使用ViewPager和HorizontalScrollView来实现Gallery的效果.的确HorizontalScrollView可以实现Gal ...
- Android横向滑动的listview
一个横向滑动的l:istview效果,其实很简单,有几种实现思路:①:recycleView实现:②:自定义一个HorizontalListView 继承自listview,控制滑动方向从纵向变为横向 ...
- Android横向滑动加载更多的控件的实现---HorizontalScrollSlideView
Android横向滑动加载更多的控件的实现-HorizontalScrollSlideView 需求 之前公司业务要求做一个横向滑动的,可以加载更多的控件,第一时间想到的就是 RecyclerView ...
- 安卓仿淘宝首页的分类标签实现(横向滑动)
淘宝效果 我的效果 使用recycleview实现 很简单,几行代码(只粘贴 了主要代码) GridLayoutManager gridLayoutManager = new GridLayoutMa ...
- Android学QQ空间相册浏览类型横向滑动效果显示多图片MyHorizontalScrollView
Android学QQ空间相册浏览类型横向滑动效果显示多图片MyHorizontalScrollView 我们来定制一下吧 布局文件:activity_main.xml <LinearLayout ...
- RecyclerView横向滑动与ViewPager冲突问题
问题出现场景: TabLayout + ViewPager + Fragment,Fragment中包含一个横向滑动的RecyclerView,出现了左右滑动RecyclerView时会与ViewPa ...
- 纯css实现移动端横向滑动列表
<!DOCTYPE html> <html> <head><title>横向滑动</title><style type="t ...
- android 横向滑动日期_移动端横向滑动如何设计?
所谓的"左右横滑"交互英文名叫做"Horizontal Scrolling Lists",最早可能起源于 Windows Phone 的横向内容滑动设计.用于在 ...
- scroll-view 横向滑动无效的问题
在小程序中写一个横向视图,直接用一个scroll-view,加上scroll-x="true"属性就OK了 xml <scroll-view class="wrap ...
最新文章
- startActivity(xx,xx.class) 传递数据
- python matplotlib散点图-python-Matplotlib散点图图例
- 服务器微信了早上好,微信问候语早上好 微信早上好经典问候语
- VS cmake远程调试ubuntu项目生成报错:“Does not match the generator used previously: Ninja“(删除.vs隐藏文件夹)
- java怎么看具体被挂起的线程_Java线程的挂起、恢复和终止
- 对称加密算法---加密学习笔记(三)
- .net VS Java 到底谁吃香?
- IOS--CALayer的介绍及使用技巧
- 2019年JavaScript状态调查中的新增功能
- html1怎样插入视频,HTML视频教程,第1章 HTML初识
- 粒子群优化算法的实现
- 微信8.0自动发送炸弹python脚本
- 常见的主机运维面板有哪些?主机面板全面汇总(国内外)
- 数据结构:八大数据结构分类
- 自建ngrok私服, 总是提示 Tunnel xxx.ngrok.mydomain.com not found
- MacBook Pro 触摸板手势突然失效的解决方案
- 双通道IPC如何RTSP取两个通道视频流?
- STM32 ADC最大采样频率
- Oracle数据库:自然连接natural join,using语句,注意避免写交叉连接
- 电子商务网站开发流程[转]
热门文章
- jsp页面转换成html,jsp页面修改成html页面
- 位列首位!百度智能云开物入选“双跨”平台国家队
- 测试用例-微信消息撤回
- python按回车_python中回车键
- 马丁福勒《重构》读书笔记
- 马丁福勒《UML精粹》读书笔记_第八章
- 2016版excel_excel中yd是什么意思
- MLAT-Autoencoders for Conditional Risk Factors and Asset Pricing---上篇
- 谁若97岁死,奈何桥上等三年
- 解决Error:All flavors must now belong to a named flavor dimension