2017-05-05 10 views
0

使い始めたばかりですNativescript私は、XMLの呼び出し(id="mainButton" class="btn")の外部CSSファイルで宣言されたボタンを持っています。すべて正常に動作します(ボタンは元々青でレンダリングされます)。しかし、コードを使って色を赤に変更する必要があります。NativeScriptを使用してボタンのCSSカラーを変更するにはどうすればよいですか?

どうすればよいですか?

は、私が(コンソールにエラーがないが、ページがもはやレンダリングされません)成功せず、以下の行を試してみた:

page.css = "mainButton { backgroundColor: red }"; 

答えて

2

簡単な解決策は、そのIDを使用して、ボタンのインスタンスを取得することですmainButton。次に、CSSまたはViewインスタンスのbackgroundColorプロパティを変更します。例えば

あなたはボタンのtapイベントでこのイベントを持っていると言う:あなたのXMLで

function changeColor(args) { 
    var btn = args.object; 
    btn.backgroundColor = "#3489db"; 
} 

<Button tap="changeColor" class="whatever" /> 

あり、他のアプローチの多くは、実行するときにしているが、それがすべきあなたがそれを把握するのに役立ちます:)

+0

ありがとうございました。これはボタンをタップすると機能しますが、クリックしないで色を変更したいと思います。より良い説明をすると、新しい色を持つ変数があります。ページが読み込まれると、この変数を読み込み、mainButtonを新しい色に設定する必要があります。 可能ですか?私はXMLファイル内の "id"を介してボタンへの参照を取得できると思ったが、これは動作していないようだ。 –

+0

えええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええばんてん - だから、ページのロードにイベントを追加し、そのIDでボタンを取得し、backgroundColorのプロパティを設定します。それは理にかなっていますか? –

+0

残念ながら、私はそれを行う方法がわかりません。私は通常のテンプレートを使用しており、関数createViewModel()の内部にコードを追加しようとしています。どのように私はそのidによって要素を得ることができますか? –

1

あなたはこのようにあなたのCSSファイルで直接行うことができます

Button { 
    background-color: red; 
} 

または

.button-class { 
    background-color: red; 
} 

、あなたはあまりにも

Button:highlighting { 
    background-color: green; 
} 

をハイライトカラーを更新することができますし、JSの/ tsの中でスタイルプロパティを使用してtns-core-modules/color

から Colorをインポートすることを忘れてはいけないことができます
buttonInstance.style.backgroundColor = new Color("#00FF00"); 
関連する問題