动态设置视图样式

时间:2018-08-12 17:43:06

标签: java android xml textview

我正在尝试动态创建TextView,然后设置以前用XML定义的样式。

这是我在styles.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>

Java代码:

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

我不知道是什么原因,但是没有应用样式。 谢谢

4 个答案:

答案 0 :(得分:1)

为给定样式添加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>

希望有帮助。

答案 1 :(得分:0)

将以下行添加到textview的属性中,它将解决您的问题。

style="@style/box_area"

类似以下内容

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

答案 2 :(得分:0)

在您的style.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>

答案 3 :(得分:0)

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

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