`
gryphone
  • 浏览: 434694 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Spinner 定制化 增强版

阅读更多

Spinner

 

作为下拉选项列表 还是非常不错 且易用的   同时 也存在一些局限性 比如: 标题栏 下拉栏 显示内容必须一致  这使得其

 

实用性大打折扣

 

 

 

 

1.  先说说其不足之处 即: 标题 下拉 显示内容 相同问题:

 

*  定义待显示内容 以TextView为例:

 

 

String[] content = {
		"eoe.android","eoe.mobile","eoe.mark","eoe.rd","eoe.mobile"	
	};

 

 

 

*  定义 CustomAdapter :

 

public class CustomAdapter extends BaseAdapter {
    	Activity activity;
    	
    	public CustomAdapter(Activity a){
    		activity = a;
    	}

		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return content.length;
		}

		@Override
		public Object getItem(int position) {
			// TODO Auto-generated method stub
			return position;
		}

		@Override
		public long getItemId(int position) {
			// TODO Auto-generated method stub
			return position;
		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			// TODO Auto-generated method stub
			TextView tv = new TextView(activity);
			tv.setText(content[position]);
			
			tv.setTextSize(20);
			return tv;
		}
    }

 

 

 

*  emulator 运行效果 可以看出 标题 下拉 显示内容 是一样的

 

 

 

 

 

 

 

2.   使得 标题 下拉 二者显示内容不同

 

 

*  定义标题显示内容:title   下拉继续使用上面定义的content

 

String[] title = {
		"0","1","2","3","4","5"
	};

 

 

 

*  定义 CustomSpinnerAdapter:

 

public class CustomSpinnerAdapter implements SpinnerAdapter {
    	Activity activity;
    	
    	public CustomSpinnerAdapter(Activity a){
    		activity = a;
    	}
    	
		@Override
		public View getDropDownView(int position, View convertView,
				ViewGroup parent) {
			// TODO Auto-generated method stub
			TextView tv = new TextView(activity);
			tv.setText(content[position]);
			
			tv.setTextSize(20);
			tv.setTextColor(Color.RED);
			return tv;
		}

		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return content.length;
		}

		@Override
		public Object getItem(int position) {
			// TODO Auto-generated method stub
			return position;
		}

		@Override
		public long getItemId(int position) {
			// TODO Auto-generated method stub
			return position;
		}

		@Override
		public int getItemViewType(int position) {
			// TODO Auto-generated method stub
			return IGNORE_ITEM_VIEW_TYPE;
		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			// TODO Auto-generated method stub
			TextView tv = new TextView(activity);
			tv.setText(title[position]);
			tv.setTextColor(Color.GREEN);
			return tv;
		}

		@Override
		public int getViewTypeCount() {
			// TODO Auto-generated method stub
			return content.length;
		}

		@Override
		public boolean hasStableIds() {
			// TODO Auto-generated method stub
			return false;
		}

		@Override
		public boolean isEmpty() {
			// TODO Auto-generated method stub
			return false;
		}

		@Override
		public void registerDataSetObserver(DataSetObserver observer) {
			// TODO Auto-generated method stub
			
		}

		@Override
		public void unregisterDataSetObserver(DataSetObserver observer) {
			// TODO Auto-generated method stub
			
		}
    	
    }

 

 

 

 

* emulator 运行截图   注意二者的不同显示

 

 

 

分享到:
评论
2 楼 gryphone 2010-07-15  
ET焖猪仔 写道
楼主可以加我的超级群32623426吗?  可以一起讨论

已+
1 楼 ET焖猪仔 2010-07-15  
楼主可以加我的超级群32623426吗?  可以一起讨论

相关推荐

    条件下拉筛选 NiceSpinner

    NiceSpinner是一个增强版的Spinner,它不仅提供了基本的下拉选择功能,还增加了诸如点击触发、条件筛选等高级特性,极大地提升了用户体验。 首先,我们要理解Spinner的基本概念。Spinner是Android原生的一种下拉...

    一款超洁净版支持小数的spinner微调器

    总的来说,“超洁净版支持小数的spinner微调器”是一个针对Android原生Spinner的定制化组件,它通过增加小数支持和优化交互体验,提升了用户在选择数值时的便捷性和准确性,是开发者在需要精确数值输入场景下的一个...

    可以记住历史选项的spinner.zip

    MemorySpinner解决了这个问题,通过保存用户的选择记录,并在下次使用时自动加载,使得Spinner能够显示用户的历史选择,增强了应用的个性化和用户交互性。 该项目的核心功能可能包括以下几个方面: 1. **历史记录...

    DropView.rar_android_android Spinner_heatlme

    "DropView.rar_android_android Spinner_heatlme" 提供了一个定制化的解决方案,它是一个针对Android平台的自定义下拉列表,作为原生Spinner的增强版,旨在提升用户界面的美观度和交互性。 首先,让我们深入理解...

    swift-SSSpinnerButton是一个优雅的按钮具有不同的spinner动画

    7. **扩展性**:通过扩展和子类化,开发者可以进一步定制按钮的行为和外观,比如添加自定义视图、改变点击事件处理等。 8. **文档和示例**:SSSpinnerButton通常会提供详细的API文档和示例代码,帮助开发者快速理解...

    spinner.rar

    总之,“spinner.rar”提供的自定义Spinner实现,通过增强用户交互和自适应布局,提升了Android应用的用户体验。对于Android开发者来说,理解并学习这样的自定义组件设计思路,可以帮助他们更好地满足项目需求,打造...

    安卓自定义控件相关-BetterSpinner自定义Spinner控件.rar

    BetterSpinner是Android中一个流行的开源库,它扩展了原生的Spinner控件,增加了更多的定制选项和更好的视觉效果。以下是对BetterSpinner的一些关键知识点的详细解释: 1. **样式定制**: BetterSpinner允许开发者...

    discourse-custom-loading-spinner:一个Discourse主题组件,用于添加自定义加载图标

    【描述】进一步强调了这个组件的目标,即提供一种方法来替换Discourse默认的加载旋转图标,让用户可以根据自己的品牌风格或者个人喜好定制这个图标,提升用户体验的同时,也能更好地体现网站的个性化。 【标签】...

    设置页面UI设计

    此外,还可以为特定组件设置样式,增强UI的个性化。 6. **响应式设计** 考虑到Android设备的屏幕尺寸和分辨率差异,设置页面的UI设计应具备良好的响应性。使用`dimens.xml`文件定义不同屏幕尺寸下的尺寸资源,以及...

    MangerTiem

    因此,`MangerTiem`可能是对这些原生组件的一个增强版,增加了更多的定制化选项。 2. **自定义视图**:为了实现这种细化的时间选择,开发者可能创建了一个自定义的视图控件,该控件可能包含多个`Spinner`(下拉菜单...

    状态之间动态切换

    `NiceSpinner`是基于原生Android Spinner的一个增强版,为开发者提供了一种更加美观和交互友好的方式来展示下拉菜单。`NiceSpinner`的核心特性是其右侧的箭头图标,它可以动态地在展开和折叠状态之间切换,增加了...

    appcompat-v7-28.0.0.zip

    开发者可以通过设置Toolbar作为Activity的ActionBar,实现高度定制化的顶部栏。 3. **Material Design Components**:AppCompat-v7-28.0.0在一定程度上引入了Material Design的设计元素,如颜色主题、过渡动画、...

    Android-CircularProgressIndicator-可定制的循环进度指示器

    "Android-CircularProgressIndicator"是一个专为Android设计的可定制的循环进度指示器库,它提供了一种优雅的方式来显示进度,增强了用户的视觉体验。 该 CircularProgressIndicator 控件允许开发者自定义多种属性...

    android actionbar 新增功能

    随着Android版本的更新,ActionBar的功能也在不断扩展和优化,为开发者提供了更多定制化和增强用户体验的可能性。本篇文章将深入探讨“android actionbar 新增功能”,并结合提供的“ActionBarTest”代码示例,解析...

    android滑动选取控件Wheel

    1. **可定制化**:"android-wheel"允许开发者自定义显示的项,可以设置字体、颜色、大小以及样式,以适应不同的UI设计需求。 2. **多列支持**:控件支持多列展示,比如在日期选择中,可以同时显示年、月、日三列,...

    appcompat_v7

    这包括主题颜色、浮动按钮(FloatingActionButton)、开关(SwitchCompat)、滑动选择器(Spinner)等,以及动画效果如ripple效果和过渡动画。 3. **ToolBar** appcompat_v7库引入了Toolbar,它是ActionBar的一个...

    android-support-v7-appcompat

    除了上述特性,`appcompat-v7`库还包括了Spinner、TabLayout、CardView、RecyclerView等组件的兼容实现,使得开发者能够在旧版本Android设备上使用这些现代化的UI组件。 总的来说,`android-support-v7-appcompat`...

    Java Swing 第三版 英文

    - **高度定制性**:开发者可以通过修改组件的外观来实现个性化的界面设计。 - **易于使用**:即使对于初学者来说,Swing 也非常友好,提供了直观的 API 和文档。 #### 二、Swing 第三版新增功能 - **拖放(Drag ...

    jQuery Spin button 文本框数值自动增减插件

    虽然jQuery Spin Button插件通常具有良好的浏览器兼容性,但为了确保在所有现代和旧版浏览器中正常工作,建议测试并进行必要的调整。此外,考虑在移动设备上优化触摸事件,以提供更好的用户体验。 总之,jQuery ...

    JAVA日历时间控件

    它是`Date`类的增强版本,支持国际化和时区处理。 2. **Joda-Time库**: - Joda-Time是Java的一个流行的时间处理库,它提供了更丰富的API和更好的设计。在Java 8之前,许多开发者选择使用Joda-Time,因为它比Java...

Global site tag (gtag.js) - Google Analytics