0

イメージビューを含む相対レイアウトで構成されるカスタム アダプターを使用する GridView があります。グリッドビューで MultiChoiceMode を有効にし、CAB (Contextual Action Bar) を有効にしました。これはうまく機能しますが、グリッド項目が選択されたときに、それらの周りに永続的なセレクターを表示する方法に困惑しています。私のセレクターは最初のプレスで動作しますが、項目が選択解除されるまで持続する方法をまだ見つけていません。

想定: ユーザーがアイテムを長押しすると、アイテムが選択され、アプリケーションが CAB モードに入ります。各項目が押されると、選択が解除されるまで、紫色のフレーム (XML のセレクター ステートメントで定義されている) が各オブジェクトの周りに表示されます。

結果: ユーザーがアイテムを長押しすると、アイテムにセレクターが短時間表示され、セレクターが消え、コードに登録されていても、アイテムの選択または選択解除に対する視覚的なフィードバックがユーザーに表示されません。

私はすべてのセレクターイベントを試しましたが、これを処理できるものはありません。回避策はありますか?不足しているものはありますか?

私が達成しようとしているものの例は、Android 4.0 または 4.1 ギャラリー アプリケーションでアイテムを長押ししようとすることによって提示されます。

---> API 15 <---

4

1 に答える 1

1

別の背景属性を持つようにリストアイテムのレイアウトを変更してみてください。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/listItemRelativeLayout" 
    android:layout_width="fill_parent" 
    android:layout_height="match_parent"
    android:background="?android:attr/activatedBackgroundIndicator">

    ...

</RelativeLayout>

そのAndroid属性は、listView.setItemChecked(int index、booleanchecked)を呼び出すときに使用されるセレクターを参照します。何らかの理由でこのように機能しているようです。

また、リストビューでこれを呼び出していることを確認してください。

listView.setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE);
于 2012-07-31T04:23:12.313 に答える