首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在操作栏上添加下拉项

如何在操作栏上添加下拉项
EN

Stack Overflow用户
提问于 2011-11-29 22:23:32
回答 2查看 100.3K关注 0票数 82

在我的Android Honeycomb应用程序中,我使用Tabs作为导航样式。我想添加一个项目旁边的溢出按钮,但我希望该项目是一个下拉列表,用户将能够选择一个选项,但与导航无关。既然我正在使用mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);,那么最简单的方法是什么

有没有可能在不使用自定义视图的情况下执行此操作?

EN

回答 2

Stack Overflow用户

发布于 2015-06-04 16:57:47

到目前为止,我找到的最好也是最简单的答案是here

基本上,在这种情况下不需要自定义布局。只需设置actonViewClass:

代码语言:javascript
复制
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourapp="http://schemas.android.com/apk/res-auto" >

  <item android:id="@+id/spinner"
    yourapp:showAsAction="ifRoom"
    yourapp:actionViewClass="android.widget.Spinner" /> <== this is all that's required
</menu>

然后像往常一样在onCreateOptionsMenu中处理它:

代码语言:javascript
复制
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_layout, menu);
    MenuItem item = menu.findItem(R.id.spinner);
    Spinner spinner = (Spinner) MenuItemCompat.getActionView(item); // get the spinner
    spinner.setAdapter(adapter); 
    spinner.setOnItemSelectedListener(onItemSelectedListener); 

这是到目前为止最简单、最干净的解决方案。归功于原著作者弗朗索瓦·波耶。

票数 35
EN

Stack Overflow用户

发布于 2016-07-28 14:57:32

它将仅作为dropdown工作

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <!--<item-->
    <!--android:id="@+id/save_contact"-->
    <!--android:icon="@drawable/edit_new"-->
    <!--android:title="Save Contact"-->
    <!--app:showAsAction="never" />-->

    <item
        android:id="@+id/send_money"
        android:icon="@drawable/edit_new"
        android:title="Send Money"
        app:showAsAction="never" />

    <item
        android:id="@+id/request_money"
        android:icon="@drawable/edit_new"
        android:title="Request money"
        app:showAsAction="never" />

    <item
        android:id="@+id/recharge"
        android:icon="@drawable/edit_new"
        android:title="Recharge"
        app:showAsAction="never" />
</menu>

内部片段

setHasOptionsMenu(true)

代码语言:javascript
复制
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.chat_details_menu, menu);


    super.onCreateOptionsMenu(menu, inflater);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8312344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档