# AppCompatEditSpinner
**Repository Path**: osard/app-compat-edit-spinner
## Basic Information
- **Project Name**: AppCompatEditSpinner
- **Description**: 带下拉选的输入框,适用于安卓5.0,使用AndroidX
- **Primary Language**: Android
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 9
- **Forks**: 2
- **Created**: 2022-05-07
- **Last Updated**: 2025-08-27
## Categories & Tags
**Categories**: android-modules
**Tags**: None
## README
[](https://www.apache.org/licenses/LICENSE-2.0)
[](https://android-arsenal.com/api?level=21)
[](https://jitpack.io/#com.gitee.osard/app-compat-edit-spinner)
### 一、介绍
带下拉选的输入框,适用于安卓5.0,使用AndroidX
### 二、工程引入工具包准备
**com.android.tools.build:gradle:4.2.2及以下版本,在工程的 build.gradle 文件添加**
```text
allprojects {
repositories {
google()
mavenCentral()
//jitpack 仓库
maven { url 'https://jitpack.io' }
}
}
```
**com.android.tools.build:gradle:7.0.0及以上版本,在工程的 settings.gradle 文件添加**
```text
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
//jitpack 仓库
maven {
url 'https://jitpack.io'
}
}
}
```
**APP的build.gradle文件添加**
```text
dependencies {
...
implementation 'com.gitee.osard:app-compat-edit-spinner:1.0.0'
implementation 'androidx.appcompat:appcompat:1.3.0'
}
```
### 三、AppCompatEditSpinner属性
1. **Xml属性**
**所有属性均存在set方法,AppCompatEditSpinner的SimpleAdapter布局的相关属性仅适用于SimpleAdapter,若重写,则自行处理**
```xml
* 需要在
* {@link AppCompatEditSpinner#setMatchIgnoreCase(boolean)}、
* {@link AppCompatEditSpinner#setMatchTextColor(String)}、
* {@link AppCompatEditSpinner#setSpinnerItemTextColor(int)}、
* {@link AppCompatEditSpinner#setSpinnerItemTextSize(int)}、
* {@link AppCompatEditSpinner#setSpinnerBackground(int)}
* 属性设置之后调用。
*/
public void setItemData(List
* 需要在
* {@link AppCompatEditSpinner#setMatchIgnoreCase(boolean)}、
* {@link AppCompatEditSpinner#setMatchTextColor(String)}、
* {@link AppCompatEditSpinner#setSpinnerItemTextColor(int)}、
* {@link AppCompatEditSpinner#setSpinnerItemTextSize(int)}、
* {@link AppCompatEditSpinner#setSpinnerBackground(int)}
* 属性设置之后调用
*/
public void setAdapter(BaseEditSpinnerAdapter adapter);
/**
* 设置文本
*/
public void setText(@StringRes int text);
/**
* 设置文本
*/
public void setText(String text);
/**
* 设置Hint文本
*/
public void setHint(@StringRes int hint);
/**
* 设置Hint文本
*/
public void setHint(String hint);
/**
* 设置Hint的文本颜色
*/
public void setHintTextColor(@ColorInt int color);
/**
* 设置背景
*/
public void setEditBackgroundResource(@DrawableRes int resource);
/**
* 设置输入文字字体大小,单位:sp
*/
public void setEditTextSize(int size);
/**
* 设置输入文字颜色
*/
public void setEditTextColor(@ColorInt int color);
/**
* 设置输入限制最大行数
*/
public void setEditMaxLines(int maxLines);
/**
* 设置输入限制最大字符长度
*/
public void setEditMaxLength(int maxLength);
/**
* 设置输入限制类型
*
* 例如:{@link InputType#TYPE_CLASS_TEXT}
*/
public void setEditInputType(int inputType);
/**
* 设置输入限制字符
*/
public void setEditDigits(@StringRes int digits);
/**
* 设置输入限制字符
*/
public void setEditDigits(String digits);
/**
* 设置是否隐藏右侧下拉选图标
*/
public void setRightImageGone(boolean rightImageGone);
/**
* 右侧图片展开下拉选时是否显示全部数据,默认:点击时显示和当前输入匹配的数据
*/
public void setRightImageDropShowAllItem(boolean rightImageDropShowAllItem);
/**
* 匹配字符的颜色,忽略字母大小写时,此属性无效
*
*
* 必须在{@link AppCompatEditSpinner#setItemData(List)}
* 或者{@link AppCompatEditSpinner#setAdapter(BaseEditSpinnerAdapter)} 调用之前进行设置
*
* {@link AppCompatEditSpinner#setItemData(List)}
* 或者{@link AppCompatEditSpinner#setAdapter(BaseEditSpinnerAdapter)} 调用后不可再次修改
*
* @param matchTextColor RGB形式,需要包含#号,例如:“#000000”
*/
public void setMatchTextColor(String matchTextColor);
/**
* 匹配字符时是否忽略字母大小写,默认不忽略。
*
*
* 必须在{@link AppCompatEditSpinner#setItemData(List)}
* 或者{@link AppCompatEditSpinner#setAdapter(BaseEditSpinnerAdapter)}调用之前进行设置
*
* {@link AppCompatEditSpinner#setItemData(List)}
* 或者{@link AppCompatEditSpinner#setAdapter(BaseEditSpinnerAdapter)} 调用后不可再次修改
*/
public void setMatchIgnoreCase(boolean matchIgnoreCase);
/**
* 待选项的颜色,默认黑色
*
*
* 必须在{@link AppCompatEditSpinner#setItemData(List)}
* 或者{@link AppCompatEditSpinner#setAdapter(BaseEditSpinnerAdapter)}调用之前进行设置
*
* {@link AppCompatEditSpinner#setItemData(List)}
* 或者{@link AppCompatEditSpinner#setAdapter(BaseEditSpinnerAdapter)} 调用后不可再次修改
*/
public void setSpinnerItemTextColor(@ColorInt int spinnerItemTextColor);
/**
* 待选项的字体大小,单位sp。
*
*
* 必须在{@link AppCompatEditSpinner#setItemData(List)}
* 或者{@link AppCompatEditSpinner#setAdapter(BaseEditSpinnerAdapter)}调用之前进行设置
*
* {@link AppCompatEditSpinner#setItemData(List)}
* 或者{@link AppCompatEditSpinner#setAdapter(BaseEditSpinnerAdapter)} 调用后不可再次修改
*/
public void setSpinnerItemTextSize(int spinnerItemTextSize);
/**
* 待选项的背景
*
*
* 必须在{@link AppCompatEditSpinner#setItemData(List)}
* 或者{@link AppCompatEditSpinner#setAdapter(BaseEditSpinnerAdapter)}调用之前进行设置
*
* {@link AppCompatEditSpinner#setItemData(List)}
* 或者{@link AppCompatEditSpinner#setAdapter(BaseEditSpinnerAdapter)} 调用后不可再次修改
*/
public void setSpinnerBackground(Drawable spinnerBackground);
/**
* 待选项的背景
*
*
* 必须在{@link AppCompatEditSpinner#setItemData(List)}
* 或者{@link AppCompatEditSpinner#setAdapter(BaseEditSpinnerAdapter)}调用之前进行设置
*
* {@link AppCompatEditSpinner#setItemData(List)}
* 或者{@link AppCompatEditSpinner#setAdapter(BaseEditSpinnerAdapter)} 调用后不可再次修改
*/
@SuppressLint("UseCompatLoadingForDrawables")
public void setSpinnerBackground(@DrawableRes int spinnerBackground);
/**
* 获取输入的文本
*/
public String getText();
/**
* 设置下拉选图标
*/
public void setRightImageDrawable(Drawable drawable);
/**
* 设置下拉选图标
*/
public void setRightImageResource(@DrawableRes int res);
/**
* 获取输入控件EditText,可做特殊配置
*/
public AppCompatEditText getEditText();
/**
* 获取右侧ImageView,可做特殊配置
*/
public AppCompatImageView getRightImageView();
}
```
### 四、可覆盖参数
**colors.xml**
```xml