Реагировать на нажатие кнопки Native для управления импортированным состоянием класса

Взгляните на ошибку 4880747: XP L & amp; F: REGRESSION: setBackground на JButton устанавливает цвет рамки в Windows XP . В разделе оценки указано:

Изменение внешнего вида кнопки всегда может вызывать конфликты с текущей реализацией L & amp; F. Windows L & amp; F для Swing пытается быть как можно ближе к собственному дисплею. В XP мы используем встроенные растровые ресурсы для кнопок. Они не могут быть раскрашены, как в собственном API.

Вы должны вызвать setContentAreaFilled (false) на кнопке, чтобы избежать того, чтобы L & amp; F рисовал свои декорации. Это имеет побочный эффект, когда свойство opaque кнопки установлено в false, поэтому вам нужно следовать этому вызову с вызовом setOpaque (true).

Это не ошибка и будет закрыта.

blockquote>

Как указано, setContentAreaFilled(false) и setOpaque(true) сделают трюк, но кнопка будет выглядеть по-другому.

Если это стоит того, вы можете создать свой собственный ButtonUI. Вот отличный пример by @mKorbel, который может оказаться полезным.

2
задан Mark 24 February 2019 в 05:40
поделиться

1 ответ

Вы можете передавать реквизиты из класса, из которого вы звоните <Popup>, например:

export default class Parent extends Component{

....
<Button
 title={"Make Popup visible Button"}
 onPress={()=>this.setState({isPopupVisible:true})
/>

<Popup isVisible={this.state.isPopupVisible} />

....
}

, а в классе Popup вы должны назначить переданные реквизиты isVisible из родительского класса в состояние класса Popup - isshowing .

Если во всплывающем окне не используется какое-либо состояние (как во многих случаях), вам следует рассмотреть возможность использования SFC (Stateless Functional Component). Это намного легче поддерживать.

0
ответ дан Srijan 24 February 2019 в 05:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: