日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android RecyclerView实现横向滚动

發(fā)布時間:2025/3/21 Android 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android RecyclerView实现横向滚动 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我相信很久以前,大家在談橫向圖片輪播是時候,優(yōu)先會選擇具有HorizontalScrollView效果和ViewPager來做,不過自從Google大會之后,系統(tǒng)為我們提供了另一個控件RecyclerView。RecyclerView是listview之后的又一利器,它可以實現(xiàn)高度的定制。今天就利用RecyclerView實現(xiàn)我們需要的相冊效果。

先上一個圖:

主要實現(xiàn)就是一個RecyclerView+RecyclerView.Adapter實現(xiàn)。

Activity的布局文件:

<android.support.v7.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" android:scrollbars="none" />

我這里是自定義的控件,主要代碼:

public class SimpleLinearLayout extends LinearLayout { protected Context mContext; protected View contentView; protected AtomicBoolean isPreparingData; public SimpleLinearLayout(Context context) { super(context); this.mContext = context; isPreparingData = new AtomicBoolean(false); initViews(); } public SimpleLinearLayout(Context context, AttributeSet attrs) { super(context, attrs); this.mContext = context; isPreparingData = new AtomicBoolean(false); initViews(); } protected void initViews() { } }

主頁面代碼:

public class SpeedHourView extends SimpleLinearLayout { @BindView(R.id.recycler_view) RecyclerView recyclerView; private SpeedHourAdapter speedHourAdapter=null; private SpeedHourEntity entity=null; public SpeedHourView(Context context) { this(context, null); } public SpeedHourView(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void initViews() { contentView = inflate(mContext, R.layout.layout_speed_per_hour, this); ButterKnife.bind(this); init(); } private void init() { initData(); initView(); initAdapter(); } private void initData() { String data = FileUtils.readAssert(mContext, "speenhour.txt"); entity = JsonUtils.parseJson(data, SpeedHourEntity.class); } private void initView() { LinearLayoutManager linearLayoutManager = new LinearLayoutManager(mContext); linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL); recyclerView.setLayoutManager(linearLayoutManager); } private void initAdapter() { speedHourAdapter=new SpeedHourAdapter(mContext); recyclerView.setAdapter(speedHourAdapter); if (entity!=null&&entity.topic!=null&&entity.topic.items!=null&&entity.topic.items.size()>0){ List<SpeedHourEntity.TopicBean.ItemsBean.ListBean> listBeen=entity.topic.items.get(0).list; if (listBeen!=null&&listBeen.size()>0) speedHourAdapter.setList(listBeen); } speedHourAdapter.setOnItemClickListener(new SpeedHourAdapter.OnItemClickListener() { @Override public void onItemClick(View view, int position) { ProductDetailsActivity.open(mContext); } }); } @OnClick(R.id.more_view) public void moreClick() { ToastUtils.showToast("更多時速達(dá)"); } }

adapter布局:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:ptr="http://schemas.android.com/apk/res-auto" android:id="@+id/speed_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:padding="10dp" android:gravity="center"> <ImageView android:id="@+id/speed_image" android:layout_width="85dp" android:layout_height="85dp" android:scaleType="fitXY" /> <TextView android:id="@+id/speed_name" style="@style/style_c6_s14" android:layout_marginTop="5dp" android:text="蜂蜜柚子茶" android:maxLines="1"/> <TextView android:id="@+id/speed_price" style="@style/style_c8_s14" android:layout_marginTop="5dp" android:text="¥30.0" android:maxLength="6" android:maxLines="1"/> </LinearLayout>

adapter代碼:

public class SpeedHourAdapter extends RecyclerView.Adapter<SpeedHourHolder> { private List<ListBean> specailList; private LayoutInflater mInflater; private Context mContext=null; public SpeedHourAdapter(Context context) { this.mContext=context; mInflater = LayoutInflater.from(context); } public void setList(List<ListBean> list) { this.specailList = list; notifyDataSetChanged(); } public OnItemClickListener mOnItemClickListener; public interface OnItemClickListener { void onItemClick(View view, int position); } public void setOnItemClickListener(OnItemClickListener mOnItemClickLitener) { this.mOnItemClickListener = mOnItemClickLitener; } @Override public SpeedHourHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = mInflater.inflate(R.layout.item_speedhour_layout, parent, false); SpeedHourHolder holder = new SpeedHourHolder(view); return holder; } @Override public void onBindViewHolder(final SpeedHourHolder holder, final int position) { ListBean bean = specailList.get(position); if (bean != null) { holder.speedImage.setScaleType(ImageView.ScaleType.FIT_XY); Glide.with(mContext).load(bean.pic).error(R.drawable.welfare_default_icon).into(holder.speedImage); holder.speedName.setText("同仁堂枸杞茶"); holder.speedPrice.setText(""+Math.random()*100); } holder.speedView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (mOnItemClickListener!=null){ mOnItemClickListener.onItemClick(holder.speedView,position); } } }); } @Override public int getItemCount() { return specailList.size(); } } class SpeedHourHolder extends RecyclerView.ViewHolder { @BindView(R.id.speed_view) LinearLayout speedView; @BindView(R.id.speed_image) ImageView speedImage; @BindView(R.id.speed_name) TextView speedName; @BindView(R.id.speed_price) TextView speedPrice; public SpeedHourHolder(View itemView) { super(itemView); ButterKnife.bind(this,itemView); itemView.setTag(this); }

代碼中用到的實體類:

public class SpeedHourEntity { public TopicBean topic; public static class TopicBean { public long nextupdatetime; public List<ItemsBean> items; public static class ItemsBean { public int id; public String theme; public int products; public int users; public String href; public boolean follow; public int topictype; public List<ListBean> list; public static class ListBean { public String id; public int price; public String pic; } } } }

?

總結(jié)

以上是生活随笔為你收集整理的Android RecyclerView实现横向滚动的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲美女毛片 | 国产男女猛烈无遮挡a片漫画 | 在线播放国产精品 | 国产精品乱码 | 午夜精彩视频 | 天天干天天操天天碰 | 欧美视频一区二区三区四区在线观看 | 四虎影视8848hh | 成人性爱视频在线观看 | 亚洲免费观看高清 | 少妇天堂网 | 少妇激情一区二区三区视频 | 国产在线xx | 歪歪6080| 国产呦小j女精品视频 | 精品无码免费视频 | 国产黄色在线免费观看 | 性一交一乱一伧老太 | 午夜福利电影一区二区 | 久久精品国产av一区二区三区 | 我们俩电影网mp4动漫官网 | 午夜精品亚洲 | 亚洲综合激情另类小说区 | 欧美日韩成人一区二区在线观看 | 在线免费黄色网 | 日韩av中文字幕在线免费观看 | 艳妇乳肉豪妇荡乳av无码福利 | 灌满闺乖女h高h调教尿h | 免费在线观看的av | 久久99精品久久久久久三级 | 性囗交免费视频观看 | 日韩av不卡在线观看 | 欧美性猛交久久久乱大交小说 | 久久综合国产 | 黑人玩弄人妻一区二区绿帽子 | www.香蕉视频在线观看 | 免费大片在线观看www | fc2ppv在线播放| 黑人巨大国产9丨视频 | 国产一区二区三区播放 | av一级大片| 96视频在线 | 精品日本一区二区三区 | 欧美操老女人 | 日韩精品免费一区二区夜夜嗨 | 爱情岛论坛永久入址测速 | 樱桃国产成人精品视频 | 桥本有菜aⅴ一区二区三区 在线午夜电影 | 欧美性xxxxx极品娇小 | 天天射视频 | 亚洲午夜无码久久久久 | 丁香七月激情 | 国产高清中文字幕 | 午夜成人在线视频 | 超碰天天 | www.欧美日韩 | 神马午夜888 | 婷婷深爱网 | 国产精品99一区 | 葵司免费一区二区三区四区五区 | 日本xxxx18 | 少妇被按摩师摸高潮了 | 17c国产精品一区二区 | 久久久久久蜜桃 | 中文字幕日本 | 欧美综合专区 | 日韩中文字幕不卡 | 波多野结衣一区二区三区高清 | 无码精品国产一区二区三区 | 久久久精品毛片 | 97视频久久久 | 日韩电影在线观看中文字幕 | 正在播放木下凛凛xv99 | 久久久久网 | 天天综合久久综合 | 91精品在线观看视频 | 国产精品夜夜躁视频 | 欧美不卡一区二区 | 欧美婷婷六月丁香综合色 | 婷婷色图 | 九色九一 | 黄色小视频免费网站 | 国产美女视频一区 | 香蕉91视频 | 国产一级淫片a视频免费观看 | 在线观看免费视频一区二区 | 青青视频免费看 | 国产乱子轮xxx农村 岛国久久久 | 亚洲最黄网站 | 午夜福利电影一区 | 亚洲av永久中文无码精品综合 | 亲子乱一区二区三区 | 天堂一区在线观看 | 亚洲精品在线一区二区 | 91精产品一区观看 | 亚洲深夜福利视频 | 国产免费无遮挡吸奶头视频 | 黄色在线免费观看 | 亚洲二区一区 |