【问题标题】:Two textviews with different colors using one theme?使用一个主题具有不同颜色的两个文本视图?
【发布时间】:2016-06-15 20:46:20
【问题描述】:

我是 android 新手,我一直在努力寻找答案。我有一个listview 的布局文件.xml,它有两个文本视图,一个用于更大尺寸的标题,另一个用于描述。我想要的是标题文本视图的文本保持白色,描述文本视图的文本在我当前的主题中保持灰色。那是黑暗的主题。但是用户可以选择更改主题,因此当用户选择 Light 主题时,我希望我的标题 textview 的文本(即在我为 listview 的行所拥有的布局内)变为黑色,并且描述 textview 的文本也变为黑色。 请提前帮助和感谢。

【问题讨论】:

    标签: android textview android-theme


    【解决方案1】:

    您可以使用方法 textView.setTextColor(int color) 以编程方式设置文本颜色,或通过 XML 使用属性 android:textColor="#yourhexcolor"

    【讨论】:

    • 有没有一种方法可以定义 2 个主题,例如一个浅色和一个深色,并进一步指定一些属性来保持较大的文本为白色和较小的灰色等等。
    • 用户如何在你的应用中切换主题?
    • 主要活动包含一个 navdrawer ,他在其中单击一个项目并打开一个上下文菜单并选择主题。
    【解决方案2】:

    您可以以编程方式更改主题。几个小时前有一个人问过这个问题。你能检查一下吗:how-to-change-colour-when-user-wants-another-colour-in-the-app

    另外,如果你想为不同的TextViews 使用不同的主题,你可以试试:

    textView.setTextAppearance(context, android.R.style.TextAppearance_Small);
    

    如何为 TextViews 创建自定义主题

    在您的styles.xml 中创建不同的样式:

    <style name="MyBlueTextTheme" parent="@android:style/TextAppearance.Medium"> 
        <item name="android:textSize">18sp</item> 
        <item name="android:textColor">#123456</item> 
        <item name="android:textStyle">bold</item>
    </style>
    

    然后像这样使用它:

    <TextView
       android:id="@+id/textBlue"
       android:text="This is a blue styled text" 
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_gravity="center"
       style="@style/MyBlueTextTheme" />
    

    或者像这样使用它:textView.setTextAppearance(context,R.style.MyBlueTextTheme);

    但它已被弃用,您可以使用 textView.setTextAppearance(R.style.MyBlueTextTheme); 但这可以使用 Api23 或更高版本

    【讨论】:

    • 好的,谢谢。我实际上是根据您的回答完成了我的工作。
    猜你喜欢
    • 1970-01-01
    • 2015-06-14
    • 2014-04-03
    • 2013-10-19
    • 2021-12-28
    • 2013-07-07
    • 2021-06-16
    • 2019-02-11
    • 2012-03-31
    相关资源
    最近更新 更多