Android:ListView中的QuickContactBadge

时间:2011-05-16 17:54:59

标签: android listview quickcontactbadge

首先是场景:

我有一个列表,其中每个项目都有联系人的照片和一些文字。我想点击图片并调出QuickContactBadge。徽章由以下XML代码段

定义
<QuickContactBadge android:layout_height="wrap_content"
   android:layout_width="wrap_content" android:id="@+id/badge" 
   android:layout_alignParentBottom="true"></QuickContactBadge>

我尝试过但失败了:

  1. 定义一个可重复使用的徽章并在所有情况下重复使用。列表和徽章都放在RelativeLayout
  2. 每个列表项都定义了一个徽章。该项目使用RelativeLayout
  3. 我看到了什么:

    基本上没什么。代码获取有效的徽章实例,然后我应用以下逻辑

        contactPhoto.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(final View v) {
                Log.d(TAG, "Image click");
                if (badge != null) {
                    badge.assignContactFromEmail("johndoe@gmail.com", true);
                    badge.setMode(ContactsContract.QuickContact.MODE_SMALL);
                    badge.bringToFront();
                }
            }
        });
    

    当我点击时,我可以单步执行onClick处理程序中的代码,但徽章永远不会出现

    问题:

    1. QuickContactBadge是否有任何展示位置逻辑?当我点击图像时,我是否需要计算徽章位置并重新调整或内置?
    2. 是否有可能实现我上面描述的内容(列表中显示的图像的徽章)以及我做错了(或缺失)

1 个答案:

答案 0 :(得分:1)

中止!中止!

基本上我完全误解了徽章是什么以及如何使用徽章。我试图做的是检测点击图像并调用徽章。这基本上是错误的,因为我需要做的只是在我的代码中使用QuickContactBadge INSTEAD ImageView。在我用项目中的徽章替换图像之后,XML魔法会自动出现。

说 - 可以使用代码弹出徽章,请参阅this article了解如何操作