我们在3.0中获得了一个NumberPicker小部件,但似乎无法修改此小部件的textSize。我错过了什么或是这样吗?我真的想增加字体大小,它的默认值非常小。但是我看不到它的textSize属性。
我们遇到了同样的问题,并最终在本地重新创建NumberPicker。还有一个更深入的教程here。
我能够通过扩展默认的NumberPicker来实现这一目标。不理想,但它的工作原理。
public class NumberPicker extends android.widget.NumberPicker {
public NumberPicker(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public void addView(View child) {
super.addView(child);
updateView(child);
}
@Override
public void addView(View child, int index, android.view.ViewGroup.LayoutParams params) {
super.addView(child, index, params);
updateView(child);
}
@Override
public void addView(View child, android.view.ViewGroup.LayoutParams params) {
super.addView(child, params);
updateView(child);
}
private void updateView(View view) {
if(view instanceof EditText){
((EditText) view).setTextSize(25);
((EditText) view).setTextColor(Color.parseColor("#333333"));
}
}
}
然后在布局xml中引用此类。
<com.yourpackage.NumberPicker
android:id="@+id/number_picker"
android:layout_width="43dp"
android:layout_height="wrap_content" />
仅为您的数字选择器设置此样式:
<style name="AppTheme.Picker" parent="Theme.AppCompat.Light.NoActionBar" >
<item name="android:textColorPrimary">@android:color/white</item>
<item name="android:textSize">20dp</item>
</style>
<NumberPicker
android:theme="@style/AppTheme.Picker"
android:id="@+id/yearNumberPicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
和qazxsw poi改变文字颜色:qazxsw poi
我遇到了同样的问题,我想增加NumberPicker的文本大小,但无法找到一种方法来作为Widget的一部分。以上所有答案都很棒,但我选择了满足我需求的以下解决方案:
TextView
这基本上放大了整个Widget。
跳到API 23,aheuermann提出的解决方案似乎有问题。在NumberPicker的源中,文本大小是在初始化时根据EditText子项设置的。如果您稍后尝试更改它,EditText字段将变大,但窗口小部件直接绘制的所有其他数字仍然很小。
我要使用的解决方案的缺点是它必须以编程方式实例化,而不是通过布局,但除此之外,它似乎按预期工作。首先,将以下内容添加到styles.xml文件中:
TextView tv1 = (TextView)_numberPicker.getChildAt(1);
tv1.TextSize = 10;
然后,您可以使用实例化NumberPicker
<NumberPicker
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleX="1.5"
android:scaleY="1.5"/>
假设它是在一个Activity中完成的。如果没有,请将“this”替换为您可用的任何上下文。此代码相当于设置一个主题,该主题覆盖Activity中的所有TextView大小,但仅将其应用于NumberPicker及其子代。
我们可以在NumberPicker中自定义视图。 它有三个观点 - 2个ImageButttons和1个EditText。
<style name="NumberPickerText">
<item name="android:textSize">40dp</item>
</style>
从Android源代码完整布局NumberPicker
ContextThemeWrapper cw = new ContextThemeWrapper(this, R.style.NumberPickerText);
NumberPicker np = new NumberPicker(cw);