Изменить цвет панели Android - PullRequest
0 голосов
/ 26 февраля 2019

Я создал приложение с Nativescript Angular, но если у меня все запущенные приложения отображаются в Android, полоса всегда белая.Кто-нибудь знает, как я могу это настроить?Например, как тот из Gmail или Playstore.Было бы лучше, если бы я мог настроить его динамически в самом приложении в соответствии с темой, выбранной пользователем, или он всегда принимает цвет панели действий.

enter image description here

Редактировать:

Я узнал, как жестко закодировать цвет -> изменить ns_primary в colors.xml файле

Но мне не удалось принять цвет моего ActionBar.Я думаю, что цвет ActionBar будет перезаписан моим xml-файлом, но я не мог понять, как это предотвратить.Знаете ли вы, что я должен изменить в своих файлах, чтобы добиться этого?

AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="__PACKAGE__"
      android:versionCode="10001"
      android:versionName="1.0">

<supports-screens
    android:smallScreens="true"
    android:normalScreens="true"
    android:largeScreens="true"
    android:xlargeScreens="true"/>

<uses-sdk
    android:minSdkVersion="17"
    android:targetSdkVersion="__APILEVEL__"/>

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>

<application
    android:name="com.tns.NativeScriptApplication"
    android:allowBackup="true"
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:theme="@style/AppTheme">

    <activity
        android:name="com.tns.NativeScriptActivity"
        android:label="@string/title_activity_kimera"
        android:configChanges="keyboardHidden|orientation|screenSize"
        android:theme="@style/LaunchScreenTheme">

        <meta-data android:name="SET_THEME_ON_LAUNCH" android:resource="@style/AppTheme" />

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="com.tns.ErrorReportActivity"/>
</application>

стилей.xml

<resources xmlns:android="http://schemas.android.com/apk/res/android">

<!-- theme to use FOR launch screen-->
<style name="LaunchScreenThemeBase" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="toolbarStyle">@style/NativeScriptToolbarStyle</item>

    <item name="colorPrimary">@color/ns_primary</item>
    <item name="colorPrimaryDark">@color/ns_primaryDark</item>
    <item name="colorAccent">@color/ns_accent</item>

    <item name="android:windowBackground">@drawable/splash_screen</item>

    <item name="android:windowActionBarOverlay">true</item>  
    <item name="android:windowTranslucentStatus">true</item>
</style>

<style name="LaunchScreenTheme" parent="LaunchScreenThemeBase">
</style>

<!-- theme to use AFTER launch screen is loaded-->
<style name="AppThemeBase" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="toolbarStyle">@style/NativeScriptToolbarStyle</item>

    <item name="colorPrimary">@color/ns_primary</item>
    <item name="colorPrimaryDark">@color/ns_primaryDark</item>
    <item name="colorAccent">@color/ns_accent</item>
</style>

<style name="AppTheme" parent="AppThemeBase">
</style>

<!-- theme for action-bar -->
<style name="NativeScriptToolbarStyleBase" parent="Widget.AppCompat.Toolbar">
    <item name="android:background">@color/ns_primary</item>
    <item name="theme">@style/ThemeOverlay.AppCompat.ActionBar</item>
    <item name="popupTheme">@style/ThemeOverlay.AppCompat</item>
</style>

<style name="NativeScriptToolbarStyle" parent="NativeScriptToolbarStyleBase">
</style>

colors.xml

<resources>
    <color name="ns_primary">#F5F5F5</color>
    <color name="ns_primaryDark">#757575</color>
    <color name="ns_accent">#33B5E5</color>
    <color name="ns_blue">#272734</color>
</resources>

Ответы [ 3 ]

0 голосов
/ 26 февраля 2019

Вы можете просто установить атрибуты backgroundColor и color на ActionBar.

<ActionBar title="ActionBar Style" color="white" backgroundColor="red">  
</ActionBar>

Или вы можете просто добавить это в свой app.css, чтобы применить его ко всему приложению

ActionBar {
  color: white;
  background-color: red;
}

Возможно, вас заинтересует плагин https://www.nativescriptthemebuilder.com/ и nativescript-themes , вместе он поможет вам динамически изменять вашу тему во время выполнения, что должно помочь вам в подборе темы.

Хотя вы все еще можете изменить цвета, изменив styles.xml / colors.xml с App_resources/Android/src/main/res.Но это будет характерно для Android и статично для всех страниц приложения.

0 голосов
/ 26 февраля 2019

Если вы хотите изменить динамически, вы можете использовать:

window.statusBarColor = ContextCompat.getColor (applicationContext, R.color. ColorPrimary)

0 голосов
/ 26 февраля 2019

Вы можете определить тему в styles.xml внутри App_resources-> values ​​

<style name="LaunchScreenThemeBase" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="toolbarStyle">@style/NativeScriptToolbarStyle</item>
    <item name="colorPrimary">@color/ns_primary</item>
    <item name="colorPrimaryDark">@color/ns_primaryDark</item>
    <item name="colorAccent">@color/ns_accent</item>
    <item name="android:windowBackground">@drawable/splash_screen</item>
    <item name="android:windowActionBarOverlay">true</item>

</style>
<style name="LaunchScreenTheme" parent="LaunchScreenThemeBase"></style>
<!-- theme to use AFTER launch screen is loaded-->
<style name="AppThemeBase" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="toolbarStyle">@style/NativeScriptToolbarStyle</item>
    <item name="colorPrimary">@color/ns_primary</item>
    <item name="colorPrimaryDark">@color/ns_primaryDark</item>
    <item name="colorAccent">@color/ns_accent</item>
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="android:fitsSystemWindows">false</item>
</style>

, и вы можете определить эти цвета в App_resources-> values-> colors.xml

<resources>
<color name="ns_primary">#c66900</color>
<color name="ns_primaryDark">#c66900</color>
<color name="ns_mainbg">#E5E5E8</color>
<color name="ns_accent">#33B5E5</color>
<color name="ns_blue">#2196F3</color>
<color name="ns_transparent">#00000000</color>
<color name="ns_white">#FFFFFF</color>


<color name="ns_color_accent_custom">#4CAF50</color>
<color name="ns_color_primary_custom">#CDDC39</color>
<color name="ns_color_primary_secondary">#AFB42B</color>

...