sách gpt4 ăn đã đi

java - 如何修改/适配 API 库中的方法?

In lại Tác giả: Walker 123 更新时间:2023-11-30 11:00:11 27 4
mua khóa gpt4 giày nike

tôi đang sử dụng Big Nerd Ranch's recyclerview-multiselect库为我的 RecyclerView của CardViews 提供多选功能。我已经解决了大部分应用程序特定的问题,但我遇到了一个相当大的问题。每当 RecyclerView 处于 SelectionMode 并且 必须重新创建卡片(这通常是因为这实际上就是 RecyclerView,至少如果我理解正确的话,) 它会抛出这个错误:

java.lang.ClassCastException: android.graphics.drawable.StateListDrawable cannot be cast to android.support.v7.widget.RoundRectDrawableWithShadow
at android.support.v7.widget.CardViewEclairMr1.getShadowBackground(CardViewEclairMr1.java:159)
at android.support.v7.widget.CardViewEclairMr1.getMinWidth(CardViewEclairMr1.java:150)
at android.support.v7.widget.CardView.onMeasure(CardView.java:181)
at android.view.View.measure(View.java:16498)

从逻辑上讲,我根据错误找到了导致 StateListDrawable 被设置为 CardView 背景的任何来源。我发现的内容总结为 a commented section in this class .内容如下:

selectionModeBackgroundDrawable defaults to a StateListDrawable that displays your colorAccent theme color when state_activated=true, and nothing otherwise.

hiện hữu SwappingHolder 类中,您可以看到导致错误的 StateListDrawable 被返回到哪里。此外,如果您按照错误中的建议查看 CardViewEclairMr1.java,您可以看到最直接导致错误的方法:

private RoundRectDrawableWithShadow getShadowBackground(CardViewDelegate cardView) {
return ((RoundRectDrawableWithShadow) cardView.getBackground());
}

老实说,在 BigNerdRanch library 中进行了所有这些窥探之后,我仍然不确定该怎么办!我在想我可能需要 @Ghi đè BigNerdRanch 方法,它引入了一个 StateListDrawable,但这会让我的手对库很脏,它会破坏目的开始实现他们的 API。如何修复此错误?

câu trả lời hay nhất

答案有点晚了,但这是我发现的对我有用的东西。检查您的 CardView 布局是否包含在 ViewGroup 中,如果不是,则可能是问题所在。

SwappingHolder 通过交换顶级 View 的可绘制对象来工作。 CardView 使用自己的 drawable,因此如果将其用作顶级 View,它将无法工作。
所以正确的做法是这样
<>
...
>

...
>


或者你可以自己实现 SelectableHolder 接口(interface),并选择你想要如何显示选中的项目。
所有这些都是作者的话 所以这里是 [链接到 GitHub] [链接] 到实际页面
【链接】: https://github.com/bignerdranch/recyclerview-multiselect/issues/14 . 祝你好运 !

关于java - 如何修改/适配 API 库中的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31645655/

27 4 0
Walker 123
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress