0

最初のシナリオ:

各アイテムに連絡先の写真とテキストが含まれているリストがあります。画像をクリックして表示したいのですがQuickContactBadge。バッジは、次のXMLスニペットによって定義されます

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

私が試したものと失敗したもの:

  1. 再利用可能なバッジを1つ定義し、すべての場合に再利用します。リストとバッジの両方がに配置されますRelativeLayout
  2. リストアイテムごとに1つのバッジを定義します。アイテムは使用しますRelativeLayout

何が見えますか:

基本的に何もありません。コードは有効なバッジインスタンスを取得し、次のロジックを適用します

    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. 私が上で説明したこと(リストに表示されている画像のバッジ)と私が間違っている(または欠落している)ことを達成することは可能ですか?
4

1 に答える 1

1

アボート!アボート!

基本的に、私はバッジが何であるか、そしてそれをどのように使用するかを完全に誤解しました。私がやろうとしていたのは、画像のクリックを検出してバッジを呼び出すことです。QuickContactBadge私がする必要があるのは、コードでINSTEAD ofを使用することだけだったので、これは根本的に間違ってImageViewいます。アイテム内の画像をバッジに置き換えた後、XMLマジックは自動的にそこにありました。

言った-コードを使用してバッジをポップすることは可能です、それを行う方法についてはこの記事を参照してください

于 2011-05-17T22:00:34.327 に答える