2017-03-19 21 views
0

私は、スタイル付きAppBarで設定ビューを持っています。そのビューからフルスクリーンダイアログを開くと、AppBarスタイルは指定されたグローバルスウォッチに従います。 次に、ダイアログボックスを閉じると、設定ビューAppBarはダイアログスタイルを保持します(白い背景が必要ですが、アプリケーションに指定された色見本が緑色です)。Gluon Mobile Dialog Appbarカスタマイズ

さらに明確化:

ビュー設定のページで、あなたはそれぞれをクリックすると、ダイアログを設定すると、その特定の設定のための情報が含まれていStackPanesに設定内容をポップアップ表示されます。

私はダイアログクローズ、非表示、および隠されたイベントハンドラにアプリケーションバーをstylizes方法を追加しようとしました

public void initView(SettingView viewType) { 

    View pane = null; 

    try { 
     switch (viewType) { 
      case PASSWORD_CHANGE: 
       pane = getPasswordPane(); 
       break; 
      case PROFILE_CHANGE: 
       pane = getProfilePane(); 
       break; 
      case BANK_CHANGE: 
       pane = getBankPane(); 
       break; 
      case NOTIFICATION_CHANGE: 
       pane = getNotificationPane(); 
       break; 
     } 
    } catch (IOException e) { 
     System.out.println("IOException: " + e); 
    } 

    //this.settingsContainer = new Dialog(true); 
    this.settingsContainer.setContent(pane); 

    MobileApplication.getInstance().removeLayerFactory("$$$DropdownButtonSkin$$$"); 

    Platform.runLater(new Runnable() { 
     @Override 
     public void run() { //None of these change the appbar styling 
      settingsContainer.setOnShowing(e -> { setAppBar("Settings");}); 
      settingsContainer.setOnShown(e -> { setAppBar("Settings");}); 
      settingsContainer.setOnHiding(e -> { setAppBar("Settings");}); 
      settingsContainer.setOnHidden(e -> { setAppBar("Settings");}); 

      //When closing the appbar the color remains to the swatch instead of the customized background 
      settingsContainer.setOnCloseRequest(e -> { setAppBar("Settings");}); 
      settingsContainer.showAndWait(); 
     } 
    }); 

} 

public AppBar setAppBar(String name) { 
    Button menu = MaterialDesignIcon.MENU.button(); 
    menu.setStyle("-fx-text-fill:darkgreen;"); 
    menu.setOnMouseClicked(e -> { 
     MobileApplication.getInstance().showLayer(Appstar.MENU_LAYER); 
    }); 

    AppBar appBar = MobileApplication.getInstance().getAppBar(); 
    appBar.clear(); 
    appBar.setNavIcon(menu); 
    appBar.setTitleText(name); 
    appBar.setVisible(true); 
    appBar.setBackground(new Background(new BackgroundFill(Color.WHITE, new CornerRadii(0), new Insets(0, 0, 0, 0)))); 
    return appBar; 
} 
+0

カスタムアプリケーションバー(別の色を)欲しい:あなたは、単に使用することができ、白に全体のアプリバーの色を設定するために

.app-bar.dialog-fullscreen { -fx-background-color: green; // OR -primary-swatch-500; } 

:したがって、あなたはこのようなものを使用することができますフルスクリーンのダイアログビューで、まだダイアログのスウォッチカラーであるAppBarが表示されます。 – ItachiUchiha

+0

私は、背景が白色になるようにスタイルされたAppbarを持つ設定ビューを持っています。スウォッチは緑色です。ダイアログを開くと、ダイアログのAppbarは緑色になります。 Appbarを閉じると、SettingsビューのAppbarも緑色になります。ナビゲーションメニューでビューを切り替えると、設定の背景が再び白くなります。 –

答えて

1

あなたが白のすべてのビュー(すなわち上で同じアプリバーの色をしたいことを考えると、すべてのビュー)、これを解決する最も簡単な方法はCSSです。

フルスクリーンダイアログでAppBarのカスタムスタイルクラス、つまりdialog-fullscreenと基本スタイルクラスapp-barを使用して、フルスクリーンダイアログでAppBarの色を設定できます。あなたに

.app-bar { 
    -fx-background-color: white; 
} 
関連する問題