gpt4 book ai didi

android - 为什么我第一次单击按钮时会在我的 RecyclerView 中调用绑定(bind)?

转载 作者:行者123 更新时间:2023-11-29 23:36:19 25 4
gpt4 key购买 nike

我有一个 RecyclerView,其中每个 ViewHolder 都包含一个带有一些 TextViews 和一个按钮的嵌套线性布局。 (该按钮是 Facebook ShareButton,但我也看到了与常规 Button 相同的行为。)当我单击一次 ShareButton 时,什么也没有发生。再次点击,成功。

一些线索:

  1. stackoverflow 上的其他答案说将按钮的 focusablefocusableInTouchMode 设置为 false——这对我的情况没有影响。
  2. 通过使用一些 print 语句,我发现第一次单击按钮时,它会在每个 ViewHolder 上再次调用 bind
  3. 如果我最小化该应用程序,然后再次将其拉起,第一次点击即可。

相关bind代码如下:

public void bind(Plaque plaque) {
Log.d(TAG, "BINDING!");

LinearLayout layout = (LinearLayout) itemView;
layout.setDrawingCacheEnabled(true);
layout.buildDrawingCache();
Bitmap map = layout.getDrawingCache();

SharePhoto photo = new SharePhoto.Builder()
.setBitmap(map)
.build();
SharePhotoContent content = new SharePhotoContent.Builder()
.addPhoto(photo)
.build();
mShareButton.setShareContent(content);
}

当我第一次点击 mShareButton 时,它只是调用这段代码(触发顶部的打印语句)。当我再次点击它时,它会将内容发送到 Facebook,就像它应该做的那样。有什么想法可以让它第一次工作,而无需再次调用 bind 吗?

最佳答案

我仍然不确定为什么在单击我的按钮时调用了 bind 方法。但我能够通过将所有按钮逻辑移出 bind 方法并移至 ViewHolder 构造函数方法中来避免这种情况。我还切换到在常规 Button 中使用 ShareDialog,这样我就可以更好地控制 onClick

关于android - 为什么我第一次单击按钮时会在我的 RecyclerView 中调用绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52197373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com