设置主题,夜间模式,按钮点击事件主题由白色变黑色

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设置主题,夜间模式,按钮点击事件主题由白色变黑色相关的知识,希望对你有一定的参考价值。

 

 

下面是错误的代码:主题不会更改

原因:从桌面打开的Activity 会自动打开一个任务栈

技术分享

   <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <!--toolbar小汉堡样式-->
        <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
        <item name="android:windowBackground">@android:color/white</item>
    </style>

    <style name="AppTheme.Black">
        <item name="android:windowBackground">@android:color/black</item>
    </style>

    <!--小汉堡颜色为白色-->
    <style name="DrawerArrowStyle" parent="@style/Widget.AppCompat.DrawerArrowToggle">
        <item name="color">@android:color/white</item>
    </style>

 

下面代码如果取消动画的话,点击完会先执行切换页面动画,再执行设置主题;用户体验不好


           private static int mTheme = -1;


           @Override
           protected void onCreate(Bundle savedInstanceState) {


          // 设置主题,必须在 super.onCreate 之前执行
          if (mTheme!=-1){
               setTheme(mTheme);
          }


          super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);


         findViewById(R.id.btn_default).setOnClickListener(this);
             findViewById(R.id.btn_black).setOnClickListener(this);

         }


@Override
public void onClick(View v) { switch (v.getId()){ case R.id.btn_default: mTheme = R.style.AppTheme; break; case R.id.btn_black: mTheme = R.style.AppTheme_Black; break; } Intent intent = new Intent(this,MainActivity.class); startActivity(intent); // 设置转场动画,不设置的话 切换界面 会执行动画 overridePendingTransition(0,0);
finish(); overridePendingTransition(
0,0
);//退出时候的动画 }

 









以上是关于设置主题,夜间模式,按钮点击事件主题由白色变黑色的主要内容,如果未能解决你的问题,请参考以下文章

华为状态栏怎么变黑色

如何修改Eclipse为黑色主题

一秒变身黑暗模式,Chrome 浏览器的新主题还有红橙黄绿青蓝紫

eclipse主题 边框怎么弄成黑色

Eclipse如何配置一个黑色主题

Win10黑色白色主题切换