国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android第三方開源下拉框NiceSpinner使用詳解

2019-10-22 18:32:27
字體:
來源:轉載
供稿:網友

android原生的下拉框Spinner基本上可以滿足Android開發對于下拉選項的設計需求,但現在越來越流行的下拉框不滿足于Android原生提供的下拉框Spinner所提供的設計樣式,而改用自定制或者第三方設計的下拉框Spinner。

NiceSpinner是一個第三方開源的下拉框Spinner,其在github上的項目主頁是:https://github.com/arcadefire/nice-spinner
 NiceSpinner原設計效果如動圖所示: 

Android,下拉框,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>

代碼運行結果: 

Android,下拉框,Spinner,NiceSpinner

Android,下拉框,Spinner,NiceSpinner

我把NiceSpinner的代碼庫(library和實例demo)全部作為一個文件目錄push到github上面,項目主頁是:https://github.com/zhangphil/zhangphil-nice-spinner

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 英德市| 睢宁县| 东乡| 临武县| 建水县| 乌鲁木齐市| 新建县| 登封市| 绍兴县| 韶山市| 南和县| 霍州市| 九江市| 工布江达县| 伊春市| 抚松县| 梁平县| 南靖县| 西丰县| 长治市| 江安县| 芜湖市| 华容县| 江陵县| 吉木萨尔县| 丹江口市| 晋江市| 镇坪县| 沙田区| 庄浪县| 景东| 望谟县| 永仁县| 东阿县| 华蓥市| 乌兰浩特市| 东港市| 凤山县| 阿尔山市| 博兴县| 浏阳市|