如何在代码中获取和设置样式属性?

问题描述 投票:0回答:2

假设以下代码:

          <MyCustomComponent
            style="@style/Base.TextAppearance.AppCompat.Headline"
            android:padding="@dimen/padding_default"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

在自定义组件中,我有一个EditText,根据布局中的@style/Base.TextAppearance.AppCompat.Headline属性,我需要在java代码中将其style属性设置为style。我怎样才能做到这一点?

我正在创建一个自定义组件,因此我还需要知道我的组件的用户在布局中选择了哪种样式。它可以通过AttributeSet获得吗?如果是,请告诉我怎么做?

android android-layout android-styles
2个回答
1
投票

要以编程方式设置TextViews样式,您必须具有继承TextAppearance样式的样式,并且可以使用以下代码应用它:

if (Build.VERSION.SDK_INT < 23) { textView.setTextAppearance(context,android.R.style.TextAppearance_Small); } else { textView.setTextAppearance(android.R.style.TextAppearance_Small); }

0
投票

在style.xml中定义自定义样式,如下所示:

<style name="MyHeadlineTextAppearance" parent="Base.TextAppearance.AppCompat.Headline"/>

然后将其设置为TextView,如下所示:

textView.setTextAppearance(context, R.style.MyHeadlineTextAppearance);
© www.soinside.com 2019 - 2024. All rights reserved.