Android PopupMenu в сочетании с ActionBar в HoneyComb - PullRequest
1 голос
/ 07 августа 2011

В настоящее время у меня есть настройка ActionBar следующим образом:

ActionBar actionBar = getActionBar();
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);

actionBar.addTab(actionBar.newTab().setText("Tab 1").setTabListener(this));
actionBar.addTab(actionBar.newTab().setText("Tab 2").setTabListener(this));
actionBar.addTab(actionBar.newTab().setText("Tab 3").setTabListener(this));
actionBar.addTab(actionBar.newTab().setText("Tab 4").setTabListener(this));
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_USE_LOGO);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

Когда пользователь нажимает на вкладку 3, я хотел бы иметь выпадающий список элементов на выбор.В настоящее время я реализовал это следующим образом:

@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
    TextView tv = (TextView)findViewById(R.id.hello);
    if (tab.getText() == "Tab 3") {
        PopupMenu menu = new PopupMenu(this, tv);
        menu.getMenuInflater().inflate(R.menu.options_menu, menu.getMenu());
        menu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
            TextView tv = (TextView)findViewById(R.id.hello);
            public boolean onMenuItemClick(MenuItem item) {
                tv.setText(item.getTitle());
                return true;
            }
        });
        menu.show();
    } else {
        tv.setText(tab.getText());
    }
}

Проблема заключается в том, что меню выравнивается по нижней части TextView, поскольку это представление, к которому он привязан.Я бился головой о стол, пытаясь выровнять его по нижней части «Tab 3».Любые предложения ???

1 Ответ

0 голосов
/ 26 июля 2013

Я знаю, что это поздний ответ, но я наткнулся на ваш вопрос в поисках чего-то другого - так что, может, это кому-нибудь поможет?

Не могли бы вы вместо этого использовать Всплывающее окно - таким образом, вы можете установить гравитацию в центре экрана, и для этого потребуется обычный диалог.

Я использовал всплывающие меню, только когда мне нужно привязать меню к нижней или боковой части и т. Д. Другого вида (Использовал его для элемента панели действий).

Всплывающие окна также могут отображаться в виде выпадающего меню - но они не содержат пунктов меню , а имеют полные пользовательские макеты , поэтому могут быть довольно могущественным.

Вот ссылка на мини-учебник по всплывающим окнам:

http://www.androidhub4you.com/2012/07/how-to-create-popup-window-in-android.html

...