- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 ViewPager2、Kotlin 和 AndroidX。当适配器不在索引 0 处并且我更改适配器列表并将当前项设置为索引 0 时,将引发异常。
java.lang.IllegalStateException: Design assumption violated.
at androidx.viewpager2.widget.ViewPager2.updateCurrentItem(ViewPager2.java:538)
at androidx.viewpager2.widget.ViewPager2$4.onAnimationsFinished(ViewPager2.java:518)
at androidx.recyclerview.widget.RecyclerView$ItemAnimator.isRunning(RecyclerView.java:13244)
at androidx.viewpager2.widget.ViewPager2.onLayout(ViewPager2.java:515)
at android.view.View.layout(View.java:15596)
在 ViewPager2 的第 537 行有一个 if 导致了异常:
// Extra checks verifying assumptions
// TODO: remove after testing
View snapView1 = mPagerSnapHelper.findSnapView(mLayoutManager);
View snapView2 = mLayoutManager.findViewByPosition(snapPosition);
if (snapView1 != snapView2) {
throw new IllegalStateException("Design assumption violated.");
}
这就是我更新适配器列表的方式:
adapter.list = newList
adapter.notifyDataSetChanged()
viewpager.setCurrentItem(0, true)
它仅在 smoothScroll
设置为 true
时发生
我错过了什么?
编辑:我正在使用 com.google.android.material:material:1.1.0-alpha08
androidx.viewpager2.widget.ViewPager2
最佳答案
我在 ViewPager2 配置更改时遇到了同样的问题。我正在使用:
implementation 'com.google.android.material:material:1.0.0'
implementation 'androidx.viewpager2:viewpager2:1.0.0-beta03'
在我的例子中,我覆盖了我的 FragmentStateAdapter 类中的 getItemId()
方法。当我摆脱我的 getItemId()
方法时,“IllegalStateException:违反设计假设”错误不再存在! :-)
关于android - 如何修复 ViewPager2 中的 'Design assumption violated' 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57017226/
我读到 Ltac 中的策略集 {assumption, apply, intro} 足以证明最小构造命题逻辑中的任何重言式。 我想纸笔证明是通过对重言式的语法进行归纳来证明这 3 种策略可以逐步构建代
假设我有一个函数来装饰一个 React 组件类,其行为可以通过键盘在项目列表中导航,如下所示: function MakeNavigable(ListComponent) { class Navi
我需要在给定几个假设(也是不等式)的情况下证明不等式(或找到一个反例)。不幸的是,要证明的不等式是一个相当长且复杂的表达式。大约有 15 个变量和 FullSimplify的输出填满了几页 A4 纸。
我正在使用 ViewPager2、Kotlin 和 AndroidX。当适配器不在索引 0 处并且我更改适配器列表并将当前项设置为索引 0 时,将引发异常。 java.lang.IllegalStat
我正在研究 C++ Z3 unsat 核心, Z3_parse_smtlib_string(ctx, "(benchmark tst :extrafuns ((b1 Bool) (b2 Boo
我正在编写一些通过 python 的 ctypes 模块调用 C dll 的 python 代码。 有问题的 DLL 在其头文件中将一些返回值定义为 enum: // // Device status
http://jsfiddle.net/NV/f54Xr/ /** * @jsx React.DOM */ var Dummy = React.createClass({ mixins:
FragmentStateAdapter 抛出 java.lang.IllegalStateException: Design assumption violated, 当设备旋转时。我该如何解决这个
我是一名优秀的程序员,十分优秀!