react-native怎么动态改变样式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了react-native怎么动态改变样式相关的知识,希望对你有一定的参考价值。

参考技术A import React, Component from 'react'; import Link from 'react-router'; /* 导入组件样式 */ import styles from './styles'; /*根据这个例子,在render的时候,最外部的className就采用`$styles`的写法,这个方括号内的style就...本回答被提问者采纳

动态改变样式表

【中文标题】动态改变样式表【英文标题】:changing stylesheet dynamically 【发布时间】:2014-04-29 01:17:39 【问题描述】:

我正在尝试使用动态属性更改我的 QLabel 的样式,因为我们可以像这样在 QSS 中定位此属性:

QLabel[foo = "warning"] color: red; 
QLabel[foo = "success"] color: green; 

当我使用QApplication::setStyleSheet() 时,标签的样式会更新,但在我更改属性值时似乎不起作用。

label = new QLabel( this );
label->setText( "some text" );
label->setProperty( "foo", "warning");

// after some event
label->setProperty( "foo", "success" );
// the label's color should be green now

我是不是错过了什么,或者样式更改不能这样工作?

【问题讨论】:

Are Qt's stylesheets really handling _dynamic_ properties? 的可能重复项 【参考方案1】:

无论我们在哪里更改属性,都需要添加以下代码来触发更新

label->setProperty("foo", "success");
label->style()->unpolish(label);
label->style()->polish(label);
label->update();

http://qt-project.org/wiki/DynamicPropertiesAndStylesheets

【讨论】:

这是一个不错的 PyQt 示例:dgovil.com/blog/2017/02/24/qt_stylesheets【参考方案2】:

今天在 PyQT 中遇到了同样的问题。在 SO 上找到的任何建议都不起作用,但最终起作用的是使用样式表的级联性质。在我的应用程序中,我有一个应用程序范围的样式表,当它们是 checked 时,它会以不同的方式设置按钮:

QToolButton 
    background-color: #12313F;
    background: #12313F;
    color: #DEE8EC;
    spacing: 0px;
    border: none


QToolButton[checked="true"] 
    background-color: #5B8AA1;
    background: #5B8AA1;

这被设置为主样式表,这是 python,但希望它能够理解(我正在将样式表作为 style.css 中的字符串读取):

mainwindow.setStyleSheet(
    pkg_resources.resource_stream(__name__, 'style.css').read())

在我的代码中,工具栏的 QAction 子项的 checked 属性可能会发生变化,然后我希望工具栏更新并突出显示该按钮。

为了实现这一点(经过大量试验和错误),我覆盖了工具栏对象的样式表,它是主窗口的子窗口。原来我什至不需要设置任何东西,一个空字符串就足够了:

toolbar.setStyleSheet("")

Et Voila,工具栏正确呈现。 QT 4.8。 C++ 中的 YMMV,但希望它可以工作。

【讨论】:

以上是关于react-native怎么动态改变样式的主要内容,如果未能解决你的问题,请参考以下文章

在 React-native 中,如何更改 NavigatorIOS 的样式

React-Native之ListView的3种样式

react-native 学习

[react] 写出React动态改变class切换组件样式

react native 怎样动态改变css

覆盖 react-native 样式表样式