可变高度项目的垂直回收器视图导致滚动跳跃

时间:2021-06-24 19:31:39

标签: android android-recyclerview

我使用垂直回收器视图来显示动态高度图像列表(定义了最大高度)。我看到当两个项目的高度差异太大时,滚动时可能会有一些跳跃。

我该如何解决这个问题?

编辑:我使用的是 LinearLayoutManager。

1 个答案:

答案 0 :(得分:0)

您在使用 StaggeredGridLayoutManager 吗?

如果是,请尝试将 GapStrategy 设置为 GAP_HANDLING_NONE。这将阻止 StaggeredGridLayoutManager 重新排列项目(以防止出现空格)。

例如:

using System;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
                    
public class Program
{
    public static void Main()
    {
        var o = new UserResponse();
        o.Age = "25";
        o.Gender = "Male";
        o.Message = "Hello";
        o.UserInfo = new User();
        o.UserInfo.Id = 1;
        o.UserInfo.FirstName = "John";
        o.UserInfo.LastName = "Doe";
        o.UserInfo.Balance = 1000M;
        var json = JsonConvert.SerializeObject(o, Formatting.Indented, new JsonSerializerSettings {ContractResolver = new CamelCasePropertyNamesContractResolver()}  );
        Console.WriteLine(json);
    }
}

public class User
    {
        public int Id { get; set; }
        public string FirstName { get; set; }
        public string LastName{ get; set; }
        public decimal Balance { get; set; }
    }

public class UserResponse
    {
        public User UserInfo { get; set; }
        public string Age { get; set; }
        public string Gender { get; set; }
        public string Message { get; set; }
    }