动态设置视图样式



我正在尝试动态创建一个文本视图,然后设置我以前在XML中定义的样式。

这是我在样式中定义的 XML.xml:

<style name="box_area">
<item name="android:layout_width">30dp</item>
<item name="android:layout_height">30dp</item>
<item name="android:background">@android:color/holo_red_dark</item>
</style>

爪哇代码:

TextView tv = new TextView(this, null, R.style.box_area);

我不知道是哪个原因,但样式没有被应用。 谢谢

为给定样式添加parent="android:Widget.TextView"。然后它应该可以正常工作。

编辑后的代码应如下所示

<style name="box_area" parent="android:Widget.TextView>
<item name="android:layout_width">30dp</item>
<item name="android:layout_height">30dp</item>
<item name="android:background">@android:color/holo_red_dark</item>

希望对您有所帮助。

在您的样式中.xml添加父级

android:Widget.TextView

要实现类似以下代码的样式,请执行以下操作:

<style name="box_area” parent="android:Widget.TextView">
<item name="android:textColor">#F00</item>
<item name="android:textStyle">bold</item>
</style>

将以下行添加到文本视图的属性中,它将解决您的问题。

style="@style/box_area"

如下所示

<TextView
style="@style/box_area"
........
/>

视图的高度和宽度将仅由您为简单视图组件的父布局定义的布局参数处理。如果要以编程方式创建视图,则必须通过 findViewById 或实例化父 ViewGroup 来获取组件父布局的实例。然后将 LayoutParam 分配为参数,同时调用 addView 将文本视图添加到其父级。

此外,还可以将视图添加到其父级,然后通过调用度量方法对其进行度量。

最新更新