实现GridView的横向滚动
效果如下图:
具体实现的代码
•1. 主界面布局代码:activity_main.xml
<&#63;xml version="1.0" encoding="utf-8"&#63;>
&#8226;2.主界面GridView列表子项布局文件:item_homepage_hor_grid.xml
<&#63;xml version="1.0" encoding="utf-8"&#63;>
&#8226;3. java实现代码:MainActivity.java
首先是Javabean
public class HomePageJrTjTwoBean { private int img; private String title; private String old_price; private String price; public int getImg() { return img; } public void setImg(int img) { this.img = img; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getPrice() { return price; } public void setPrice(String price) { this.price = price; } public String getOld_price() { return old_price; } public void setOld_price(String old_price) { this.old_price = old_price; } }
Activity代码
public class MainActivity extends Activity { //横向GridView @BindView(R.id.home_grid) GridView home_grid; // 数据源 private Listrelist = new ArrayList<>(); private CommonAdapters re_adapter = null; private List listData_two = new ArrayList<>(); private int[] jrtj_two = new int[]{R.mipmap.home_jrtj_sp_1, R.mipmap.home_jrtj_sp_2, R.mipmap.home_jrtj_sp_3, R.mipmap.home_jrtj_sp_3, R.mipmap.home_jrtj_sp_3};//今日特价横向数据 private String[] sp_name = new String[]{"老板(Roba1m)大吸力免 拆洗触控侧吸式...", "老板(Roba1m)大吸力免 拆洗触控侧吸式...", "老板(Roba1m)大吸力免 拆洗触控侧吸式...", "老板(Roba1m)大吸力免 拆洗触控侧吸式...", "老板(Roba1m)大吸力免 拆洗触控侧吸式..."}; private String[] price = new String[]{"¥5517", "¥5517", "¥5517", "¥5517", "¥5517"}; private String[] hua_price = new String[]{"¥8888", "¥8888", "¥8888", "¥8888", "¥8888"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //自己造的假数据,实际开发中从后台获取,再去刷新Grid的适配器,调用 re_adapter.notifyDataSetChanged(); for (int i = 0; i (getActivity(), relist, R.layout.item_homepage_hor_grid) { @Override public void convert(ViewHolders holder, QgitemBean datas) { //商品图片 ImageView home_page_jrtj_img = holder.getView(R.id.home_page_jrtj_img); //商品标题 TextView home_page_jrtj_tv_title = holder.getView(R.id.home_page_jrtj_tv_title); //商品价格 TextView home_page_jrtj_tv_price = holder.getView(R.id.home_page_jrtj_tv_price); //商品划价 TextView home_page_jrtj_tv_huajia = holder.getView(R.id.home_page_jrtj_tv_huajia); home_page_jrtj_tv_huajia.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);//设置划价 home_page_jrtj_img.setImageResource(datas.getImg()); home_page_jrtj_tv_title.setText(datas.getTitle()); home_page_jrtj_tv_price.setText(datas.getPrice()); home_page_jrtj_tv_huajia.setText(datas.getOld_price()); } }; home_grid.setAdapter(re_adapter); } }
适配器
public abstract class CommonAdaptersextends BaseAdapter { protected Context mContext; protected List mDatas; protected LayoutInflater mInflater; protected int layoutId; private int mCurPosition = 0; public int getCurPosition() { return mCurPosition; } public void setCurPosition(int mCurPosition) { this.mCurPosition = mCurPosition; } public CommonAdapters(Context context, List datas, int layoutId) { this.mCOntext= context; mInflater = LayoutInflater.from(context); this.mDatas = datas; this.layoutId = layoutId; } public CommonAdapters(Context mContext, T xx, int item_home_list_in) { this.mCOntext= mContext; mInflater = LayoutInflater.from(mContext); this.mDatas = (List ) xx; this.layoutId = item_home_list_in; } public void upDataList(List datas) { if (null == datas) return; if (mDatas != datas) { mDatas.clear(); mDatas.addAll(datas); } notifyDataSetChanged(); } @Override public int getCount() { if (null == mDatas) return 0; return mDatas.size(); } @Override public T getItem(int position) { return mDatas.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolders holder = ViewHolders.get(mContext, convertView, parent, layoutId, position); convert(holder, getItem(position)); return holder.getConvertView(); } public abstract void convert(ViewHolders holder, T datas); }
总结
以上所述是小编给大家介绍的Android通过实现GridView的横向滚动实现仿京东秒杀效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!