1.布局
<HorizontalScrollView
android:id="@+id/hsv_hos"
android:layout_width="match_parent"
android:layout_height="200px"
android:fadingEdge="horizontal"
android:scrollbars="none">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="200px">
<android.support.v7.widget.RecyclerView
android: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;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(mContext).inflate(R.layout.item_hosgrid, null, false);
return new ViewHolder(view);
}
@Override
public 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() {
@Override
public void onClick(View v) {
if (position != index) {
index = position;
notifyDataSetChanged();
}
onRvItemClick.OnRvItemClick(position, v);
}
});
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public 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">
<LinearLayout
android:id="@+id/ll_item"
android:layout_width="200px"
android:layout_height="200px"
android:background="@drawable/filleheavybg"
android:gravity="center"
android:orientation="vertical">
<TextView
android: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" />
<TextView
android: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() {
@Override
public 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>