gpt4 book ai didi

android - 以编程方式设置样式不起作用?

转载 作者:太空狗 更新时间:2023-10-29 14:11:47 26 4
gpt4 key购买 nike

这是我写的一个复合 View 的代码。它使用 android.support.v7.widget.CardView 作为父类:

public class ItemListItem extends CardView {

TextView tvName;
ImageView ivIcon;

public ItemListItem(Context context) {
super(context, null, R.style.GreenCardView);
LayoutInflater.from(context).inflate(R.layout.item_list_item, this, true);
tvName = (TextView) findViewById(R.id.tvName);
ivIcon = (ImageView) findViewById(R.id.ivIcon);
}

public void setItem(Item item)
{
tvName.setText(item.getName());
}
}

虽然我在第 7 行的 super 构造函数调用中添加了自定义样式 (R.style.GreenCardView),但它使用默认的白色样式初始化了此类的每个实例。为什么会这样?

编辑:风格

<style name="GreenCardView" parent="CardView.Dark">
<item name="contentPadding">@dimen/default_margin</item>
<item name="cardBackgroundColor">@color/guiColor</item>
<item name="cardElevation">@dimen/cardElevation</item>
<item name="cardCornerRadius">@dimen/cardCornerRadius</item>
<item name="android:foreground">?android:attr/selectableItemBackground</item>
</style>

最佳答案

View 构造函数的第三个参数需要是主题属性,例如R.attr.myCardViewStyle。您需要在您的应用主题中指定该属性的值,并在 attrs.xml 中定义该属性。

res/values/attrs.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
...
<attr name="myCardViewStyle" format="reference" />
</resources>

res/values/themes.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
...
<style name="AppTheme" parent="...">
...
<item name="myCardViewStyle">@style/GreenCardView</item>
</style>
</resources>

关于android - 以编程方式设置样式不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27132413/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com