gpt4 book ai didi

android - 设置样式的边距并以编程方式将该样式应用于 TextView

转载 作者:可可西里 更新时间:2023-11-01 19:08:16 24 4
gpt4 key购买 nike

在我的应用程序中,我想将 8 dip 的顶部和底部边距设置为 TextView 。所以如果我这样做 -

<TextView
android:id="@+id/tv_text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/settings_plain_text"/>

它在样式内容所在的地方工作正常 -

<style name="settings_plain_text">
<item name="android:layout_marginTop"> 8dip </item>
<item name="android:layout_marginBottom"> 8dip </item>
<item name="android:textSize"> 18sp </item>
</style>

但是当我以编程方式将相同的样式应用于该 textview 时 -

textview.setTextAppearance(context, R.style.settings_plain_text);

它不显示我在样式中设置的顶部和底部边距。请帮忙。

最佳答案

setTextAppearence(..) 仅设置带有前缀 android:text_* 的 xml 属性,但您仍然可以编写自己的方法来读取其他属性并以编程方式设置它们底层 LayoutParams 实现。

请注意,您可以使用 ContextThemeWrapper 获取特定的主题值或在 .obtainStyledAttributes(..) 中传递样式资源 ID

举个例子:

int[] attrs= new int[] {
android.R.attr.layout_marginTop, // 0
android.R.attr.layout_marginLeft, // 1
android.R.attr.layout_marginRight, // 2 (used in example)
android.R.attr.layout_marginBottom}; // 3
final TypedArray arr = context.obtainStyledAttributes(attrs);
try {
// ...
layoutParams.rightMargin = arr.getDimensionPixelSize(2);
// ...
} finally {
arr.recycle();
}

关于android - 设置样式的边距并以编程方式将该样式应用于 TextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9481270/

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