【问题标题】:How to set a theme to a customView?如何将主题设置为 customView?
【发布时间】:2019-04-16 04:34:31
【问题描述】:

我有这个style.xml

<style name="header_has_selected_account" parent="TextAppearance.AppCompat">
    <item name="android:layout_height">wrap_content</item>
    <item name="android:layout_width">wrap_content</item>

<item name="android:layout_marginStart">
  @dimen/account_menu_account_list_item_avatar_margin_end
</item>
<item name="android:layout_marginEnd">
  @dimen/account_menu_account_list_item_margin_end
</item>
<item name="android:layout_marginLeft">
  @dimen/account_menu_account_list_item_avatar_margin_end
</item>
<item name="android:layout_marginRight">
  @dimen/account_menu_account_list_item_margin_end
</item>
  </style>

我有一个CustomView,其布局包含两个TextViews 和一个ImageView

如何将样式设置为仅TextViews 之一(不是自定义TextView)?我是否必须创建 2 个CustomView 和一个自定义 ImageView,因为我必须将样式传递给他们的ctor

【问题讨论】:

    标签: android android-layout layout styles themes


    【解决方案1】:

    您无需创建新的自定义视图。如果您有对 TextView 的引用,您只需使用 TextViewCompat 即可应用某种样式资源。

    像这样:

    TextViewCompat.setTextAppearance(yourTextView, yourStyleId);
    

    注意: TextViewCompatandroid.support.v4 上可用。


    来自文档:

    从指定的样式资源设置文本外观。

    【讨论】:

    • 我怎样才能只改变 ImageView 的大小?
    • ImageView 没那么容易。您可以使用您想要的样式实例化您的视图:new ImageView(context, null, R.style.Your_Style_Resource);。或通过自定义视图。检查问题:stackoverflow.com/q/11723881/1574250
    猜你喜欢
    • 2013-05-30
    • 1970-01-01
    • 2014-10-31
    • 2013-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-22
    • 1970-01-01
    相关资源
    最近更新 更多