1

目前我的 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”的底部对齐。有什么建议么???

4

1 回答 1

0

我知道这是一个迟到的答案,但我遇到了你在寻找其他东西的问题 - 所以也许这可以帮助某人?

难道你不能使用弹出窗口来代替 - 这样你就可以将重力设置到屏幕的中间,它会喜欢一个常规的对话框。

仅当我需要将菜单锚定到另一个视图的底部或侧面等时,我才使用弹出菜单(将其用于操作栏项)。

弹出窗口也可以显示为下拉菜单- 但它们不包含菜单项,而是具有完整的自定义布局,因此非常强大。

这是弹出窗口上的迷你教程的链接:

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

于 2013-07-25T21:40:38.097 回答