帮我写一段代码,在切换fragment时,改变MainActivity的颜色,加载快,画面不会闪
时间: 2024-02-24 21:56:18 浏览: 71
好的,可以参考下面的代码实现:
在MainActivity类中,添加如下方法:
```java
public void changeBackgroundColor(int color) {
getWindow().getDecorView().setBackgroundColor(color);
}
```
在切换Fragment时,调用该方法即可改变MainActivity的背景颜色。同时,为了避免界面闪烁,可以使用FragmentTransaction的hide和show方法来切换Fragment,而不是使用replace方法。
例如,在Activity中,切换到Fragment1:
```java
Fragment1 fragment1 = new Fragment1();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out);
transaction.hide(currentFragment).show(fragment1).commit();
currentFragment = fragment1;
changeBackgroundColor(Color.RED);
```
其中,currentFragment为当前显示的Fragment,使用hide方法将其隐藏,使用show方法显示新的Fragment1,并调用changeBackgroundColor方法改变MainActivity的背景颜色。这里使用了淡入淡出的动画效果,可以根据需要进行修改。
阅读全文