Android 商品详情中规格的联动选择实现

一 啥也不说了,先看效果吧。


二  这种方式和天猫淘宝的效果区别并不大。但是实现思路应该区别蛮大,毕竟我自己实现的时候很麻烦。具体还是要看 数据是怎么样的 。依靠数据去梳理逻辑。

1  表结构。Json数据在源码中


2 数据查询的实现思路 在代码中有。


3 视图的实现 ,用了一个自定义的Flowlayout  类似流失布局 ,一行一行的的显示 。


三 源码下载 点击下载


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android ,可以使用 RecyclerView 和 ListView 来实现列表联动。下面分别介绍这两种方式的实现方法。 1. RecyclerView 实现列表联动 RecyclerView 是 Android 比较新的列表控件,它提供了更加灵活的布局和样式定制方式。实现 RecyclerView 的列表联动,可以使用 RecyclerView 的滚动事件来监听列表的滚动位置,然后通过列表的滚动位置来计算联动列表需要展示的内容。 具体实现步骤如下: 1)在布局文件添加两个 RecyclerView 控件。 2)在代码设置 RecyclerView 的 layoutManager,并为 RecyclerView 设置 Adapter。 3)为第一个 RecyclerView 添加滚动监听事件,监听其滚动位置。 4)在滚动监听事件计算联动列表的滚动位置,并将其滚动到相应位置。 示例代码如下: ``` // 初始化 RecyclerView RecyclerView recyclerView1 = findViewById(R.id.recyclerView1); RecyclerView recyclerView2 = findViewById(R.id.recyclerView2); recyclerView1.setLayoutManager(new LinearLayoutManager(this)); recyclerView2.setLayoutManager(new LinearLayoutManager(this)); // 为 RecyclerView 设置 Adapter recyclerView1.setAdapter(adapter1); recyclerView2.setAdapter(adapter2); // 监听第一个 RecyclerView 的滚动事件 recyclerView1.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); // 计算联动列表的滚动位置 int firstVisibleItemPosition = ((LinearLayoutManager) recyclerView.getLayoutManager()).findFirstVisibleItemPosition(); recyclerView2.scrollToPosition(firstVisibleItemPosition); } }); ``` 2. ListView 实现列表联动 ListView 是 Android 较早的列表控件,它的使用方式和 RecyclerView 有所不同。实现 ListView 的列表联动,需要通过 ListView 的滚动监听事件来监听列表的滚动位置,然后通过滚动位置来计算联动列表需要展示的内容。 具体实现步骤如下: 1)在布局文件添加两个 ListView 控件。 2)在代码设置 ListView 的 Adapter。 3)为第一个 ListView 添加滚动监听事件,监听其滚动位置。 4)在滚动监听事件计算联动列表的滚动位置,并将其滚动到相应位置。 示例代码如下: ``` // 初始化 ListView ListView listView1 = findViewById(R.id.listView1); ListView listView2 = findViewById(R.id.listView2); // 为 ListView 设置 Adapter listView1.setAdapter(adapter1); listView2.setAdapter(adapter2); // 监听第一个 ListView 的滚动事件 listView1.setOnScrollListener(new AbsListView.OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { // do nothing } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { // 计算联动列表的滚动位置 listView2.setSelection(firstVisibleItem); } }); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值