ナンバーピッカーで仕切り線を削除するにはどうすればよいですか?xmlを使用してsetShowDividerをnoneに設定してみました(noneは存在しないようです)。
picker.setShowDividers(LinearLayout.SHOW_DIVIDER_NONE);
XML:
Android:showDividers="none"
Numberpickerのテーマを設定する
<NumberPicker
...
Android:theme="@style/DefaultNumberPickerTheme" />
style.xml
<style name="DefaultNumberPickerTheme" parent="AppTheme">
<item name="colorControlNormal">@color/transparent</item>
</style>
[〜#〜]または[〜#〜]
private void changeDividerColor(NumberPicker picker, int color) {
Java.lang.reflect.Field[] pickerFields = NumberPicker.class.getDeclaredFields();
for (Java.lang.reflect.Field pf : pickerFields) {
if (pf.getName().equals("mSelectionDivider")) {
pf.setAccessible(true);
try {
ColorDrawable colorDrawable = new ColorDrawable(color);
pf.set(picker, colorDrawable);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (Resources.NotFoundException e) {
e.printStackTrace();
}
catch (IllegalAccessException e) {
e.printStackTrace();
}
break;
}
}
}
そしてそれを次のように設定します
changeDividerColor(yournumberpicker, Color.parseColor("#00ffffff"));
このコードの方が良いでしょう
private void changeDividerColor(NumberPicker picker, int color) {
try {
Field mField = NumberPicker.class.getDeclaredField("mSelectionDivider");
mField.setAccessible(true);
ColorDrawable colorDrawable = new ColorDrawable(color);
mField.set(picker, colorDrawable);
} catch (Exception e) {
e.printStackTrace();
}
}