
1. 给输入框设置监听器,当输入框内的文字改变时触发监听事件。
2. 在监听事件中判断输入框的文本内容是否满足某些条件。
3. 如果满足条件,改变按钮颜色;如果不满足条件,恢复按钮颜色为原始状态。
具体实现方法如下:
1. 给输入框设置监听器:
```
editText.addTextChangedListener(textWatcher)
```
2. 定义监听事件:
```
private TextWatcher textWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//文字改变时触发
if (s.length() >0) {
//如果输入框内有文本内容
if (满足条件) {
//如果满足某些条件
button.setBackgroundColor(颜色1)//改变按钮颜色
} else {
//如果不满足条件
button.setBackgroundColor(颜色2)//恢复按钮颜色
}
} else {
//输入框内无文本内容
button.setBackgroundColor(颜色2)//恢复按钮颜色
}
}
@Override
public void_
androidstudio设置标题栏与按钮颜色不同1.打开Android Studio,选择File->Settings,在搜索框输入Appearance &Behavior->Appearance,找到Theme,点击下拉框中的Darcula,然后点击Save保存即可。
2.点击File->Settings,在搜索框输入Appearance &Behavior->Appearance,找到Accent color,点击下拉框中的自定义,然后选择你想要的颜色,点击Save保存即可。
我们知道,在styles.xml文件里面可以设置主题,在主题中设置的一些颜色,将会应用到默认的AppCompat控件上,从而很简单的就可以保持整个APP在UI上的一致性。下面是一个例子:
至于各种控件是如何应用这些颜色设置的,则需要经过更多的尝试了。
比如Activity导航栏默认的图标颜色是colorControlNormal,导航栏的底色是colorPrimary,沉浸式状态栏默认的颜色是colorPrimaryDark;
比如FAB的默认颜色是colorAccent;
比如AppCompatCheckBox默认的选中状态的颜色是colorAccent,而默认的未选择状态的颜色的colorControlNormal;
比如AppCompatSpinner的下拉图标的默认颜色也是colorControlNormal。
......
其实涉及到的主要的就是下面这几个参数:
那么问题来了,如果你使用蓝色的沉浸式状态栏,导航栏上的图标则使用白色,那在这个Activity中使用AppCompatCheckBox的时候,未选择状态就也是白色的,此时如果在白色的背景色下,用户就看不出这是个AppCompatCheckBox了。这时候怎么办?如下图(图中使用的是AppCompatSpinner):
其实很简单,在这个AppCompatCheckBox上使用app:theme="@style/MyCheckBox",然后在styles.xml中添加新的
但是需要注意的是,这样可能引起控件其他默认属性的变化,比如CheckBox的textSize会变成1(不使用app:theme的时候和APP的默认字体大小一样)。
android:theme和app:popupTheme的作用,以及在android 3.0以下不起作用问题的解决
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)