今天接到一个需求,要在一个原生安卓APP的list renderer里加一个下拉菜单,并且不同的下拉项要根据内容显示不同颜色的字体。自从用过react native之后再接触安卓原生感觉一下子好不习惯,在RN里短短几行就能搞定的事在原生里得改好多代码。安卓里下拉菜单控件是Spinner。直接上代码:
实现list renderer里的下拉菜单
关于Spinner的实现网上已经能找到很多,这里就列一下跟list renderer相关的。先list所在的xml相应位置添加Spinner的定义:
|
|
在list adapter类里:
|
|
实现不同值显示不同样式
在Spinner的Adapter时重写getDropDownView(),这样确保了下拉弹出框里样式改变
|
|
重写Spinner的OnItemSelectedListener的onItemSelected()方法,确定在未展开状态下默认选中值的样式:
|
|
小窍门:
消除spinner的下拉箭头.1234<Spinner ... android:background="@null"/>