gpt4 book ai didi

android - 双 GridView 同时和同步滚动

转载 作者:行者123 更新时间:2023-11-30 03:27:25 24 4
gpt4 key购买 nike

我在 Android 应用程序中遇到了一个问题,到目前为止我还没有找到解决方案。可能有一些明显的东西是我遗漏的,所以也许有人可以为我建议一个好的解决方案。

所以基本上我在水平布局中有两个并排的 GridView。左边的 GridView 是一列,右边的 GridView 动态调整列数以适应屏幕。基本上,左侧 GridView 是右侧 GridView 的编程填充行标题列。我这样做是因为我正在构建一个具有一定行数的表,而不是水平滚动所有列(列数未知,因为用户可以添加更多列)我需要它到达边缘屏幕,然后创建一个空白行,然后换行以继续列。我开始使用一个 GridView 并在第一列添加标题信息,但我遇到了各种问题,代码极其复杂,用于确定将哪些数据放在我的自定义适配器中的位置以及我的适配器中的 getCount()确保创建了正确数量的单元格,包括空白单元格。

现在我有两个 GridView,一切都按照我希望的方式工作,除了滚动。我希望两个 GridView 在滚动时一起滚动(或尽可能接近同一时间)。这是我的滚动代码,它没有按预期工作:

     mRightGrid.setOnScrollListener(new AbsListView.OnScrollListener() {

@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {

}

@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
mLeftGrid.smoothScrollToPosition((firstVisibleItem / mRightGridColumns) + 1);

}
});



mLeftGrid.setOnScrollListener(new AbsListView.OnScrollListener() {

@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {

}

@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
mLeftGrid.smoothScrollToPosition((firstVisibleItem * mRightGridColumns) + 1);

}
});

希望这是显而易见的,这样做的目的是如果右侧网格中有 10 列并且滚动该网格以便位置 30(第三行的第一个单元格)是第一个可见项,那么左侧网格应该滚动到位置 2 (30/10 - 1 = 2),这是左侧 GridView 第三行的单元格。所以这根本不像我预期的那样工作,我想知道是否真的有一种方法可以在每次移动网格时评估滚动条的实际 y 位置,并将相同的 y 位置应用于我相信的另一个网格实际上会工作并提供良好的同步滚动结果。

最佳答案

所以我最终硬着头皮回到一个 GridView 并与复杂的代码作斗争,因为无论我尝试滚动什么,在另一个网格 catch 之前总是有滞后,我就是找不到一种同时平滑滚动两个 GridView 的方法。

关于android - 双 GridView 同时和同步滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18025463/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com