0

ListViewが内部にある単純なLinearLayoutがあります(match_parent幅と高さの両方)。ListViewの任意の場所を長押しすると表示されるコンテキストメニューが必要です。まず、registerForContextMenuListViewを呼び出しました。これにより、リストアイテムに対してタッチが実行された場合にのみ、コンテキストメニューが表示されます。次にregisterForContextMenu、LinearLayoutも呼び出し、属性を設定しましたandroid:longClickable="true"。これは役に立ちませんでした。

では、問題は、リストアイテムの下にある長いタッチのコンテキストメニューをどのように作成できるかということです。たとえば、リストビューにアイテムが1つある場合、アイテムの下に多くの空きスペースがあります。レイアウトに従ってリストビューが親全体に表示される場合、コンテキストメニューの呼び出しに使用されないのはなぜですか?

4

1 に答える 1

1

ListViewのどこかを長くクリックしてを取得するContextMenuことは、ユーザーが期待する通常の動作ではないと思います(特に、ユーザーが の下の空のスペースをクリックするListViewと、ListView ContextMenuが表示されます)。

とにかく、あなたの例では、ListView高さ属性をwrap_content(私の記憶が正しければ、これが推奨値です)に設定Contextmenuし、ListViewと親に を登録LinearLayoutできます(もちろん、両方に同じコードを提供する必要があります)。

于 2012-05-04T11:28:47.173 に答える