android原生的下拉框Spinner基本上可以满足Android开发对于下拉选项的设计需求,但现在越来越流行的下拉框不满足于Android原生提供的下拉框Spinner所提供的设计样式,而改用自定制或者第三方设计的下拉框Spinner。

NiceSpinner是一个第三方开源的下拉框Spinner,其在github上的项目主页是:https://github.com/arcadefire/nice-spinner
NiceSpinner原设计效果如动图所示:
但是通常开发者对于可能还需要对于下拉框中出现的文字和样式进行二次开发,比如如果希望NiceSpinner的选中文本颜色或者下拉弹出框中的文字有些变化,则需要重新二次定制NiceSpinner code项目中的NiceSpinnerBaseAdapter, NiceSpinnerBaseAdapter中的getView返回的view表现形式即为下拉框中的结果:
//这个方法将返回下拉列表的形制,可以在这里修改和二次定制开发。
//zhang phil 注解
@Override
@SuppressWarnings("unchecked")
public View getView(int position, View convertView, ViewGroup parent) {
TextView textView;
if (convertView == null) {
convertView = View.inflate(mContext, R.layout.spinner_list_item, null);
textView = (TextView) convertView.findViewById(R.id.tv_tinted_spinner);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
textView.setBackground(ContextCompat.getDrawable(mContext, mBackgroundSelector));
}
convertView.setTag(new ViewHolder(textView));
} else {
textView = ((ViewHolder) convertView.getTag()).textView;
}
textView.setText(getItem(position).toString());
textView.setTextColor(mTextColor);
//这里是被zhang phil修改的,用于改变下拉列表的文字颜色。
textView.setTextColor(Color.RED);
return convertView;
}
修改后,写一个小demo演示,测试的MainActivity.Java:
package zhangphil.demo;
import java.util.Arrays;
import java.util.LinkedList;
import org.angmarch.views.NiceSpinner;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
NiceSpinner niceSpinner = (NiceSpinner) findViewById(R.id.nice_spinner);
niceSpinner.setTextColor(Color.GREEN);
LinkedList<String> data=new LinkedList<>(Arrays.asList("Zhang", "Phil", "@", "CSDN"));
niceSpinner.attachDataSource(data);
}
}
布局文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="zhangphil.demo.MainActivity" >
<org.angmarch.views.NiceSpinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:id="@+id/nice_spinner" />
</RelativeLayout>
代码运行结果:
我把NiceSpinner的代码库(library和实例demo)全部作为一个文件目录push到github上面,项目主页是:https://github.com/zhangphil/zhangphil-nice-spinner
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Android
# 下拉框
# Spinner
# NiceSpinner
# Android实现联动下拉框 下拉列表spinner的实例代码
# Android中Spinner(下拉框)控件的使用详解
# Android进阶之Spinner下拉框的使用方法
# Android使用 Spinner控件实现下拉框功能
# Android使用Spinner实现城市级联下拉框
# android控件Spinner(下拉列表)的使用例子
# 框中
# 是一个
# 在这里
# 我把
# 弹出
# 作为一个
# 还需要
# 所示
# 所提供
# 第三方
# 即为
# 表现形式
# 大家多多
# 满足于
# 则需
# TextView
# parent
# ViewGroup
# position
相关文章:
相册网站制作软件,图片上的网址怎么复制?
公司网站的制作公司,企业网站制作基本流程有哪些?
海南网站制作公司有哪些,海口网是哪家的?
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
如何在Golang中引入测试模块_Golang测试包导入与使用实践
如何快速搭建高效简练网站?
如何在云主机上快速搭建网站?
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
建设网站制作价格,怎样建立自己的公司网站?
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
如何在Windows 2008云服务器安全搭建网站?
我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?
如何登录建站主机?访问步骤全解析
建站主机如何选?高性价比方案全解析
如何在IIS7中新建站点?详细步骤解析
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
如何通过PHP快速构建高效问答网站功能?
韩国服务器如何优化跨境访问实现高效连接?
成都响应式网站开发,dw怎么把手机适应页面变成网页?
番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?
制作门户网站的参考文献在哪,小说网站怎么建立?
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
宁波自助建站系统如何快速打造专业企业网站?
高防服务器租用首荐平台,企业级优惠套餐快速部署
如何选择高效可靠的多用户建站源码资源?
网站制作费用多少钱,一个网站的运营,需要哪些费用?
如何实现建站之星域名转发设置?
微信推文制作网站有哪些,怎么做微信推文,急?
英语简历制作免费网站推荐,如何将简历翻译成英文?
杭州银行网站设计制作流程,杭州银行怎么开通认证方式?
湖北网站制作公司有哪些,湖北清能集团官网?
如何通过FTP空间快速搭建安全高效网站?
如何快速登录WAP自助建站平台?
如何配置FTP站点权限与安全设置?
如何在建站主机中优化服务器配置?
宝塔面板创建网站无法访问?如何快速排查修复?
香港服务器选型指南:免备案配置与高效建站方案解析
三星网站视频制作教程下载,三星w23网页如何全屏?
如何通过远程VPS快速搭建个人网站?
实例解析angularjs的filter过滤器
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
小建面朝正北,A点实际方位是否存在偏差?
如何将凡科建站内容保存为本地文件?
制作网站的基本流程,设计网站的软件是什么?
大学网站设计制作软件有哪些,如何将网站制作成自己app?
如何在宝塔面板创建新站点?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
*请认真填写需求信息,我们会在24小时内与您取得联系。