在布局XML中定义的组件(文本和编辑框)看起来与我以编程方式添加的组件完全不同。
我尝试以编程方式应用与XML中相同的textAppearance样式。我也尝试在添加组件之后调用setTheme()
。没有不同。
TextView tv10 = new TextView(getApplicationContext());
tv10.setText("Back width");
EditText tv11 = new EditText(getApplicationContext());
tv11.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_CLASS_NUMBER);
TextView
带有小字体和灰色文本,EditText
带有黑色背景和灰色文本。
由于用户选择的选项,必须以编程方式添加组件。这些用户选择在XML中定义,并遵循预期的配色方案,这是Android Studio的默认设置。 (白色背景上的黑色文字)
答案 0 :(得分:1)
您不应将应用程序上下文用于视图。仅活动上下文。在代码中创建视图时,也可以将样式作为参数传递。
答案 1 :(得分:0)
正如Yamko所说,样式可以在构造函数中传递
var textView = TextView(context, null, R.style.LoginBodyTextViewStyle)
样式可以像
<style name="LoginBodyTextViewStyle" parent="android:Widget.TextView">
<item name="android:textStyle">normal</item>
<item name="android:fontFamily">sans-serif</item>
<item name="android:textSize">@dimen/text_size_default</item>
<item name="android:textColor">@color/grey</item>
</style>