7

各項目のリストビュー アダプターにポップアップ メニューがあります。画面の左端にメニューが表示されるのですが、どうすれば右端に変更できますか?

private void showPopupMenu(View v, final App app) {
    PopupMenu popupMenu = new PopupMenu(context, v);

    popupMenu.getMenuInflater().inflate(R.menu.quick_action_menu,
            popupMenu.getMenu());
    popupMenu
            .setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
                @Override
                public boolean onMenuItemClick(MenuItem item) {
                    switch (item.getItemId()) {
                    ...
4

5 に答える 5

14

遅ればせながら =) これは私の決定であり、PopupMenu を指定された座標に設定できるようにします。コードはあまり良くありませんが、機能します。

public void show(Activity activity, float x, float y)
{
    final ViewGroup root = (ViewGroup) activity.getWindow().getDecorView().findViewById(android.R.id.content);

    final View view = new View(context);
    view.setLayoutParams(new ViewGroup.LayoutParams(1, 1));
    view.setBackgroundColor(Color.TRANSPARENT);

    root.addView(view);

    view.setX(x);
    view.setY(y);

    PopupMenu popupMenu = new PopupMenu(context, view, Gravity.CENTER);

    popupMenu.setOnDismissListener(new PopupMenu.OnDismissListener()
    {
        @Override
        public void onDismiss(PopupMenu menu)
        {
            root.removeView(view);
        }
    });

    popupMenu.show();
}
于 2015-08-05T13:58:42.783 に答える
0

リストポップアップメニューを表示するには、ListPopupWindow を使用できます。オフセットを設定する関数があります ( ListPopupWindow )。

または、この関数を使用して明示的に PopupWindow のオフセットを設定できます

于 2015-03-30T09:36:12.080 に答える