android自定义下拉列表对话框,android – 从操作项自定义下拉列表(actionba...

博主在尝试为Android应用的操作栏添加一个自定义的下拉菜单,希望能保持与主页图标下拉菜单相同的外观和感觉。他们成功地为主页图标设置了自定义字体和图标的下拉菜单,但当尝试将其应用于其他操作项时,遇到了问题。自定义Spinner作为actionLayout导致了样式和行为的不一致,使得它看起来更像一个Alert对话框而不是下拉菜单。博客中探讨了如何在不牺牲下拉效果的情况下,为其他操作项添加自定义设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我需要一个附加到操作项的自定义下拉菜单.我设法为主页图标做同样的事情,但似乎与其他动作项目完全不同.

我知道这个问题和答案:How to add a Dropdown item on the action bar

我的问题是我想完全自定义它(我使用自定义字体,也需要图标),所以子菜单是不够的,我想.将自定义Spinner附加为actionLayout看起来就像下拉一样.

对于主页图标,它看起来像这样:

actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

ArrayList data = new ArrayList();

data.add(...);

data.add(...);

ActionBarNavAdapter adapter = new ActionBarNavAdapter(...);

actionBar.setListNavigationCallbacks(adapter, new OnNavigationListener() {...});

我可以在不牺牲“下拉”的情况下添加自己的设计.

如何使用其他动作项目?

编辑:

我知道使用NAVIGATION_MODE_LIST的活动使用Spinner(ListNavigationCallbacks使用SpinnerAdapter),但它看起来更好,我不知道从哪里获取所有这些样式(如果它只是那样)使它看起来像那样.我的意思是:

好 – > NAVIGATION_MODE_LIST的外观如何:它正在包装列表,它附在主页图标下面.

不好 – >自定义Spinner作为actionLayout的外观如何:它将屏幕宽度与一些额外的深色背景相匹配,替换了操作项图标(这很容易更改),最重要的是,使屏幕的其余部分变暗.它看起来更像是带有自定义列表的AlertDialog,而不是下拉菜单.

码:

@Override

public boolean onPrepareOptionsMenu(Menu menu) {

MenuItem sortItem = menu.findItem(R.id.sort);

Spinner spinner = new Spinner(this);

//this is the same adapter because I didn't want to spend time creating a new one

//ActionBarNavAdapter extends SpinnerAdapter of course

ArrayList data = new ArrayList();

data.add(...);

data.add(...);

ActionBarNavAdapter adapter = new ActionBarNavAdapter(...);

spinner.setAdapter(adapter);

sortItem.setActionView(spinner);

return true;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值