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
相关文章:
建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略
如何确保FTP站点访问权限与数据传输安全?
微信小程序 input输入框控件详解及实例(多种示例)
制作门户网站的参考文献在哪,小说网站怎么建立?
宝塔建站教程:一键部署配置流程与SEO优化实战指南
唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?
IOS倒计时设置UIButton标题title的抖动问题
小型网站制作HTML,*游戏网站怎么搭建?
长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
如何解决ASP生成WAP建站中文乱码问题?
已有域名和空间如何快速搭建网站?
安云自助建站系统如何快速提升SEO排名?
建站10G流量真的够用吗?如何应对访问高峰?
建站主机服务器选购指南:轻量应用与VPS配置解析
无锡营销型网站制作公司,无锡网选车牌流程?
成都网站制作公司哪家好,四川省职工服务网是做什么用?
利用JavaScript实现拖拽改变元素大小
建站主机空间推荐 高性价比配置与快速部署方案解析
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
建站之星会员如何解锁更多建站功能?
焦点电影公司作品,电影焦点结局是什么?
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
如何登录建站主机?访问步骤全解析
如何零基础开发自助建站系统?完整教程解析
专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?
高性能网站服务器配置指南:安全稳定与高效建站核心方案
建站之星安全性能如何?防护体系能否抵御黑客入侵?
建站之星多图banner生成与模板自定义指南
c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】
建站之星后台管理如何实现高效配置?
贸易公司网站制作流程,出口贸易网站设计怎么做?
如何选择适合PHP云建站的开源框架?
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
Python lxml的etree和ElementTree有什么区别
高性能网站服务器部署指南:稳定运行与安全配置优化方案
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
高防服务器:AI智能防御DDoS攻击与数据安全保障
如何选择香港主机高效搭建外贸独立站?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
如何选择适配移动端的WAP自助建站平台?
建站之星如何取消后台验证码生成?
电商网站制作价格怎么算,网上拍卖流程以及规则?
金*站制作公司有哪些,金华教育集团官网?
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
建站之星上传入口如何快速找到?
如何有效防御Web建站篡改攻击?
已有域名建站全流程解析:网站搭建步骤与建站工具选择
北京网站制作公司哪家好一点,北京租房网站有哪些?
青岛网站建设如何选择本地服务器?
*请认真填写需求信息,我们会在24小时内与您取得联系。