1. 程式人生 > >Spinner的用法介紹(相容性問題)

Spinner的用法介紹(相容性問題)

今天碰到一個spinner在華為mate10上顯示異常的問題。如下圖
這裡寫圖片描述

正常顯示應該是這樣的 如下圖
這裡寫圖片描述

回顧下spinner的用法

一.佈局檔案中配置


        <Spinner
            android:paddingRight="20dp"
            style="@style/spinner_bg"
            android:id="@+id/Setting_spinner"
            android:layout_width="80dp"
            android:layout_height="25dp"
android:layout_marginLeft="15dp" android:layout_marginTop="2dp" />

樣式是自定義的樣式,更改了預設的背景。

二,新增一個下拉列表項的list,這裡新增的項就是下拉列表的選單項

list.add("5 秒");
        list.add("10 秒");
        list.add("30 秒");
        list.add("1分鐘");
        list.add("5分鐘");
        list.add("10分鐘"
); list.add("30分鐘");

三 為下拉列表定義一個介面卡,這裡就用到裡前面定義的list。

final ArrayAdapter adapter = new ArrayAdapter(this,
R.layout.simple_spinner, list);
上面的simple_spinner也是一個自定義的佈局檔案,這樣的目的是可以更改選單項內容的字型顏色 大小等內容
simple_spinner的全部內容

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android
="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" style="?android:attr/spinnerItemStyle" android:singleLine="true" android:layout_width="match_parent" android:layout_height="match_parent" android:ellipsize="marquee" android:layout_alignParentLeft="true" android:gravity="center" android:textColor="#ffffff" android:textAlignment="inherit"/>

四,為介面卡設定下拉列表下拉時的選單樣式。

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

五 將介面卡新增到下拉列表上

setting_spinner.setAdapter(adapter);

六 設定點選事件

setting_spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> parent, View view,
                    int position, long id) {
                time_interval = (String) adapter.getItem(position);

            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });

注意上面的第四部,simple_spinner_dropdown_item是系統自帶的佈局檔案,咱們剛開始談論的問題就是因為這個引起的,將這個佈局裡面的內容拷貝出來,自定義一個佈局檔案,將內容拷貝進去
如下

adapter.setDropDownViewResource(R.layout.simple_spinner_dropdown_item);

simple_spinner_dropdown_item的內容



<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    style="?android:attr/spinnerDropDownItemStyle"
    android:singleLine="true"
    android:layout_alignParentRight="true"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ellipsize="marquee"/>

再次執行軟體,發現問題搞定。。