在ViewPager2中为下一个视图调用绑定

时间:2019-04-02 15:57:57

标签: android android-viewpager2

我正在尝试使用通过RecyclerView实现的新Google的ViewPager2(https://developer.android.com/jetpack/androidx/releases/viewpager2)类。

ViewPager的主要思想之一是为选定的视图创建“邻居”视图,以便用户在滚动时可以立即看到创建的视图。但是,正如我现在看到的那样,开始滚动时,仅在适配器(我正在使用RecyclerView.Adapter)中调用onBindViewHolder。

有人知道如何解决该问题,以便在对用户实际可见之前在邻居上调用onBind方法吗?谢谢。

1 个答案:

答案 0 :(得分:1)

您可以在-- get names of updated columns DECLARE @idTable INT declare @ColumnName nvarchar(300) declare @ColId int SELECT @idTable = T.id FROM sysobjects P JOIN sysobjects T ON P.parent_obj = T.id WHERE P.id = @@procid DECLARE @changedProperties nvarchar(max) = '' DECLARE @Columns_Updated VARCHAR(2000) = '' DECLARE @maxByteCU INT DECLARE @curByteCU INT SELECT @maxByteCU = DATALENGTH(COLUMNS_UPDATED()), @curByteCU = 1 WHILE @curByteCU <= @maxByteCU BEGIN DECLARE @cByte INT SET @cByte = SUBSTRING(COLUMNS_UPDATED(), @curByteCU, 1) DECLARE @curBit INT DECLARE @maxBit INT SELECT @curBit = 1, @maxBit = 8 WHILE @curBit <= @maxBit BEGIN IF CONVERT(BIT, @cByte & POWER(2, @curBit - 1)) <> 0 BEGIN SET @ColId = cast( CONVERT(VARCHAR, 8 * (@curByteCU - 1) + @curBit) as int) select @ColumnName = [Name] FROM syscolumns WHERE id = @idTable and colid = @ColId SET @Columns_Updated = @Columns_Updated + ',' + @ColumnName END SET @curBit = @curBit + 1 END SET @curByteCU = @curByteCU + 1 END 上使用setOffscreenPageLimit(...)在用户滚动到相邻ViewHolder之前创建它们。