android studio中如何为数字选择器的选定和未选定值具有不同的颜色?

问题描述

我正在制作自定义号码选择器。我希望选定值的颜色与未选定值的颜色不同。

下面是我的XML:

   <style name="NumberPickerTheme" parent="Theme.AppCompat.Light">
    <item name="colorAccent">@android:color/white</item>
    <!-- Divider Removal. -->
    <item name="colorControlnormal">@android:color/transparent</item>
    <item name="android:textColorPrimary">@color/colorAccent</item>
    <item name="android:background">@android:color/transparent</item>
    <item name="android:textSize">40sp</item>
</style>

enter image description here

解决方法

我尝试了多种方法在NumberPicker上执行此操作,但它始终显示一种颜色。但是您可以使用WheelPicker代替NumberPicker,并选择了颜色更改选项。

将此添加到您的依赖项

implementation'com.super_rabbit.wheel_picker:NumberPicker:1.0.1'

这是我选择的颜色更改的代码

public class MainActivity extends AppCompatActivity {

    WheelPicker numberPicker;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        numberPicker = findViewById(R.id.numberPicker);
        numberPicker.setMin(0);
        numberPicker.setMax(20);
        numberPicker.setSelectedTextColor(R.color.colorAccent);//Selected color set
        numberPicker.setSelectorRoundedWrapPreferred(true);
    }
}

result

您可以在colors.xml中添加更多颜色并将其设置为选择器。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...