2011-01-15 8 views
2

在庫があるAndroidの電話/連絡先アプリケーションのいくつかの場所に表示されるレイアウトのように、項目に2つの押され易い部分があるListViewを作成したかった:2つのプレス可能なピースを持つListViewアイテムレイアウトの奇妙な問題

http://i55.tinypic.com/358s1lc.jpg

私は小さなピースが押され、視覚的問題を除き、個別に各部分からのイベントを処理するなど、レイアウトが正常に動作しています。それが押されたときに自分のアプリケーションでは小さな作品は、これだけのように、背景用の小さな楕円を取得します。

実際に私のアプリケーションではありません注 - それはNubDialですが、私のアプリケーションは、同じ問題を抱えています。 NubDialは、携帯電話のアプリとまったく同じXMLレイアウトを使用しているので、私はどのように関連するリスト項目のレイアウトわからないんだけど、ここで彼らはとにかく、次のとおりです。

連絡先リスト:contacts_list_item.xml
NubDial:contacts_list_item.xml

がします誰が何が起こっているのか知っていますか?

答えて

0

レイアウトは右のボタンは、この背景のDrawableを使用していた:私のプロジェクトにlist_selector_background_transition引き出し可能、その画像をコピーする

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:state_window_focused="false" 
     android:drawable="@android:color/transparent" /> 
    <item android:state_focused="false" android:state_pressed="true" 
     android:drawable="@*android:drawable/list_selector_background_transition" /> 
    <item android:state_focused="false" android:state_pressed="false" 
     android:drawable="@android:drawable/screen_background_dark"/> 

</selector> 

は、問題を修正しました。私はこれがかなり奇妙だと思っていました。可能であれば、システムのドロウアブルを使いたいと思っていました。誰が何が起こっていたのか知​​っていますか?

0

Hmm。私は今これをテストする方法がありませんが、私はあなたがする必要があるアイデアを持っていると思います。ソースを見ると、コールボタンの場合、GoogleはDontPressWithParentImageViewというカスタムビューを使用します。親を押すと、基本的には押された状態にはなりません(実際に連絡先を押している場合は、見た目から電話アイコンを押したままにします)。

実際のアダプタソースを見つけることができませんが、あなたのListAdapter内で、getView()メソッド内で、あなたの呼び出しボタン(この場合はDontPressWithParentImageView)にonClickListener ()は、選択した連絡先の番号でダイヤラを呼び出します。一方、ListViewのonListItemClick()メソッドは代替アクション(連絡先の詳細の表示)を処理できます。

+0

私の質問は少し間違っていたと思います.DontPressWithParentImageViewを使用しているレイアウトとクリックハンドラがあります。私の問題は純粋に視覚的なものです。押したときのコールボタンの奇妙な楕円形の背景です。マーケットからNubDialをダウンロードして、どういう意味なのか見てみましょう(とにかくかなり良いアプリです)。 – jnylen

+0

DPWPImageViewの背景は何ですか? StateListDrawableの場合は、Pressed状態で使用しているドロアブルを確認して参照してください。私はそれがそこに何かあると思う。 – kcoppock

+0

両方のアプリ(PhoneとNubDial)は、同じ描画可能ファイル(http://code.google.com/p/nubdial/source/browse/trunk/res/drawable/call_background)を使用します。xml – jnylen

0

あなたは1つのことを行うことができます。 リストビューの行レイアウトでは、セクションを「メインコンテナ」として分割することができます。このセクションには、「左コンテナ」と「右コンテナ」ビューグループが含まれます。

左右のコンテナの両方に 'clickable = true'を設定すると、その 'id'でクリックを識別できます。

+0

編集した質問とタイトルを明確にする - レイアウトはプログラム的にうまく動作しますが、押されたときに「正しいコンテナ」で視覚的な問題が発生しています。 – jnylen