В настоящее время у меня есть настройка 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».Любые предложения ???