2017-01-13 13 views
3

textviewimageViewの項目を持つlistViewがあります(imageViewをクリックすると、フルスクリーンイメージが表示されます)。また、項目を押したままにすると、ポップアップが表示されます。ListViewのItem longClickがImageViewで動作しない

imageViewを使用してlongClickしようとするまで、すべてのことは正常に動作しています。 ImageViewに触れるとlistView'sロングクリックメソッドが呼び出されないので、タッチを引いた後にimageView'sクリックが呼び出されます。

そして私はそれがそのようになりたい:

imageView/listItemにlongClicking、それだけで警告し、それがフルスクリーン画像が表示されるはずですimageViewをシングルクリックで表示されるはずです。

私は何か助けを求める助けてください。

+0

アダプタの 'imageView'に' onLongClick'イベントを入れてみてください。 –

+0

imageViewのlongClickにタスクを実行したくありません。 – NehaK

+1

私は同じ問題がありました。私はクリック、長いクリック、タップ、同じレイアウトの別の子をダブルタップを処理するためにAndroidのジェスチャーリスナーライブラリを使用しました。 –

答えて

5

最後に、私はこの問題の解決策を見つけた:

私は返すように「真」longClickListenerでを必要としていました。 のような:

lv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { 
    @Override 
    public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) { 
     Log.d("debug", "onLongClick = " + i + " " + view.getTag()); 
     return true; 
    } 
}); 

そしてitem_view.xmlに次の行を追加する必要:

superParentレイアウトの行を追加します。そのImageViewのため

android:descendantFocusability="blocksDescendants" 

を:

android:longClickable="true" 

例:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="150dp" 
    android:descendantFocusability="blocksDescendants" 
    android:gravity="center" 
    android:orientation="horizontal"> 

    <ImageView 
     android:id="@+id/text_view" 
     android:layout_width="100dp" 
     android:layout_height="100dp" 
     android:longClickable="true" 
     android:background="#ff0000" /> 

</LinearLayout> 
+0

はい。それは違いない !!!! – Piyush

+0

私はこの同じ問題を抱えていました。テキストビューを 'android:longClickable =" true "'に設定すると、リストビューのTextviewがすべて修正されました。 –

-1

OnLongClickListenerImageViewlistitemに付けます。これが機能しない場合は、長いクリックリスナーをアイテムビューの一番外側の(親の)要素に割り当てることもできます。

+1

最も外側の(親)はすでにlongClickListenerを持っています。しかし、これは有効な解決策ではないと思います。クリック可能なビューを追加したい場合は、それらのすべてに対してlongClickListenerを追加する必要があります。 – NehaK

+0

@NehaKなぜそれを無効なソリューションと見なすのですか? –

+0

無効ではないが不適切な解決策の種類..私はTouchInterceptレイアウトのような解決策が必要です。 – NehaK

-1

imageview clickイベントに追加するとlistviewアイテムで1つのクリックイベントしか働かないので、listview clickイベントはリストビューではないので、imageviewをリストRawアイテムとして扱うようにします。イベント。

+0

私はこれを知っていますが、 – NehaK

関連する問題