带有字符串和分隔线的数字选择器
Numberpicker with String and breaklines
带字符串和分隔线的数字选择器正是我所需要的!
发现论坛在 Numberpicker 组件中使用字符串。但是必须为了更好的观看而制作断线是可能的吗?
此组件可以从布局、样式等方面进行何种程度的定制?
private NumberPicker np;
np = (NumberPicker) view
.findViewById(R.id.np);
np.setOnClickListener(this);
np.setAddStatesFromChildren(false);
getStringForNp();//populate np with String array
setNumberPickerTextColor(np, getActivity().getResources().getColor(R.color.white));
private boolean setNumberPickerTextColor(NumberPicker numberPicker, int color)
{
final int count = numberPicker.getChildCount();
for(int i = 0; i < count; i++){
View child = numberPicker.getChildAt(i);
if(child instanceof EditText){
try{
Field selectorWheelPaintField = numberPicker.getClass()
.getDeclaredField("mSelectorWheelPaint");
selectorWheelPaintField.setAccessible(true);
((Paint)selectorWheelPaintField.get(numberPicker)).setColor(color);
((EditText)child).setTextColor(color);
//***********************************
//Attempts in vain
//***********************************
// String replace = ((EditText)child).getText().toString().replace("\n"," ");
// ((EditText)child).setText(replace);
((EditText)child).setSingleLine(false);
// ((EditText)child).setHorizontallyScrolling(false);
((EditText)child).setEllipsize(TextUtils.TruncateAt.END);
((EditText)child).setMaxLines(2);
// ((EditText)child).setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);
TableRow.LayoutParams params = new TableRow.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT,1.0f);
((EditText)child).setInputType(InputType.TYPE_CLASS_TEXT);
((EditText)child).setLayoutParams(params);
numberPicker.invalidate();
return true;
}
catch(NoSuchFieldException e){
Log.w("setNumberPickerTextColor", e);
}
catch(IllegalAccessException e){
Log.w("setNumberPickerTextColor", e);
}
catch(IllegalArgumentException e){
Log.w("setNumberPickerTextColor", e);
}
}
}
return false;
}
有人能帮帮我吗?
我需要做一个换行符,这是一个例子,它是如何成为文本没有中断的组件的。
此 lib 允许您使用最多 1 个换行符的字符串。
带字符串和分隔线的数字选择器正是我所需要的! 发现论坛在 Numberpicker 组件中使用字符串。但是必须为了更好的观看而制作断线是可能的吗? 此组件可以从布局、样式等方面进行何种程度的定制?
private NumberPicker np;
np = (NumberPicker) view
.findViewById(R.id.np);
np.setOnClickListener(this);
np.setAddStatesFromChildren(false);
getStringForNp();//populate np with String array
setNumberPickerTextColor(np, getActivity().getResources().getColor(R.color.white));
private boolean setNumberPickerTextColor(NumberPicker numberPicker, int color)
{
final int count = numberPicker.getChildCount();
for(int i = 0; i < count; i++){
View child = numberPicker.getChildAt(i);
if(child instanceof EditText){
try{
Field selectorWheelPaintField = numberPicker.getClass()
.getDeclaredField("mSelectorWheelPaint");
selectorWheelPaintField.setAccessible(true);
((Paint)selectorWheelPaintField.get(numberPicker)).setColor(color);
((EditText)child).setTextColor(color);
//***********************************
//Attempts in vain
//***********************************
// String replace = ((EditText)child).getText().toString().replace("\n"," ");
// ((EditText)child).setText(replace);
((EditText)child).setSingleLine(false);
// ((EditText)child).setHorizontallyScrolling(false);
((EditText)child).setEllipsize(TextUtils.TruncateAt.END);
((EditText)child).setMaxLines(2);
// ((EditText)child).setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);
TableRow.LayoutParams params = new TableRow.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT,1.0f);
((EditText)child).setInputType(InputType.TYPE_CLASS_TEXT);
((EditText)child).setLayoutParams(params);
numberPicker.invalidate();
return true;
}
catch(NoSuchFieldException e){
Log.w("setNumberPickerTextColor", e);
}
catch(IllegalAccessException e){
Log.w("setNumberPickerTextColor", e);
}
catch(IllegalArgumentException e){
Log.w("setNumberPickerTextColor", e);
}
}
}
return false;
}
有人能帮帮我吗?
我需要做一个换行符,这是一个例子,它是如何成为文本没有中断的组件的。
此 lib 允许您使用最多 1 个换行符的字符串。