- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
谷歌开发团队的人能解释一下如何避免在 pre-ics 设备上发生这种崩溃吗?在我的例子中,ListView 项目上的 ImageButton 是 PopupWindow 的 anchor ,用于创建下拉菜单。我已经尝试了 popup.dismiss() 、popup= null 等所有方法,但似乎没有什么能阻止适配器重置时出现问题。
我收到以下异常:
FATAL EXCEPTION: main
java.lang.NullPointerException
at android.widget.PopupWindow$1.onScrollChanged(PopupWindow.java:132)
05-21 17:02:27.736: E/AndroidRuntime(25836): at
android.view.ViewTreeObserver.dispatchOnScrollChanged(ViewTreeObserver.java:607)
此弹出窗口位于列表项上。从 ListView 中删除最后一个列表项后,我会重置 Adapter 以设置页脚。然后当我离开屏幕时会发生此错误。
不在 Ice Cream Sandwich 中: Ice Cream Sandwich 。参见 https://android.googlesource.com/platform/frameworks/base/+/749b0eb2c9a52bb188fd8900859b3725889e0ec0%5E!/
这建议修复与 PopupWindow 的空 anchor 相关的问题。可以做什么?在我的例子中,ListView 项目中的一个按钮是弹出窗口的 anchor 。同样的问题在这里:
最佳答案
不确定 OP 是否仍然需要这个,因为半年后我才看到这个..
这在 ICS 中已修复。但是,您可以通过反射分配一个固定的滚动监听器!
if(Build.VERSION.SDK_INT<Build.VERSION_CODES.ICE_CREAM_SANDWICH){
try {
final Field fAnchor = PopupWindow.class.getDeclaredField("mAnchor");
fAnchor.setAccessible(true);
Field listener = PopupWindow.class.getDeclaredField("mOnScrollChangedListener");
listener.setAccessible(true);
final ViewTreeObserver.OnScrollChangedListener originalListener = (ViewTreeObserver.OnScrollChangedListener) listener.get(window);
ViewTreeObserver.OnScrollChangedListener newListener=
new ViewTreeObserver.OnScrollChangedListener() {
public void onScrollChanged() {
try {
// PopupWindow implementation has WeakReference<View>
WeakReference<View> mAnchor = (WeakReference<View>) fAnchor.get(window);
if (mAnchor == null || mAnchor.get() == null) {
return;
} else {
originalListener.onScrollChanged();
}
} catch (Exception e) {
e.printStackTrace();
}
}
};
listener.set(window,newListener);
} catch (Exception e) {
e.printStackTrace();
}
}
关于Android SDK 在 android.widget.PopupWindow$1.onScrollChanged(PopupWindow.java :132),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12793784/
我正在开发一个具有 ScrollView 的 Android 应用程序。我已经从 ScrollView 覆盖了我的 View 并实现了 onScrollChanged 方法。当 scrollview
我在 ScrollView 内的 TextView 中有固定内容。当用户滚动到某个位置时,我想启动一个 Activity 或触发一个Toast。 我的问题是在实现 protected
我有一个实现 OnScrollListener 的 ArrayAdapter。 OnScroll 方法被多次调用,大多数时候不止一次。现在永远不会调用 OnScrollChangedState,我完全
我创建了一个扩展 ListView 的类,这样我就可以重写 onScrollChanged,这样我就可以判断列表是向上滚动还是向下滚动。然而每次它被调用时,所有的值都是 0。 对常规 ScrollVi
这里是 protected void View.onScrollChanged(int l, int t, int oldl, int oldt) 的来源: /** * This is called
我想在 Scrollview 上跟踪 ScrollY(不,我不能使用网格或列表) 我正在使用带有 onScrollChanges 监听器的 ViewTreeObserver。但是,它会被多次触发。更糟
我已经实现了一个监听器类来检测引用链接 https://gist.github.com/marteinn/9427072 的 ScrollView 的结尾 public class Responsiv
我有一个带有 webview 和按钮的布局。该按钮是可见的,但一旦滚动 web View 就会变得可见。我正在使用 ViewTreeObserver,但由于某种原因,未调用 onScrollChang
我在屏幕上工作,其中有 scrollview,其中包含 4 个 view,并且我有四个选项卡代表该部分。最初 view1 tab 在我滚动 view2 时处于 Activity 状态 visible
我有一个 GridView 可以显示您图库中的图片。当用户滚动列表时,有关图像的详细信息从左侧动画显示。我在为 GridView 项目定义自定义布局的类中实现了这一点。它扩展了 LinearLayou
在 Xamarin Android 中,我们如何扩展 ScrollView 以使用 protected OnScrollChanged 事件? 具体来说,我们如何扩展 ScrollView 以允许将
我正在尝试实现以下效果: 我有一个自定义的 ScrollView(为了获得 onScrollChanged 监听器)和一个自定义 View 。在自定义 View 中,我成功地放置了我想要的项目。 这里
我有一个 ScrollView,它的唯一子元素是 RelativeLayout。最近我注意到这个方法: @Override protected void onScrollChanged(int l,
谷歌开发团队的人能解释一下如何避免在 pre-ics 设备上发生这种崩溃吗?在我的例子中,ListView 项目上的 ImageButton 是 PopupWindow 的 anchor ,用于创建下
我是一名优秀的程序员,十分优秀!