android fragment里面动态设置状态栏颜色
时间: 2023-09-24 19:11:38 浏览: 172
要在 Android Fragment 中动态设置状态栏颜色,你需要首先获取 Fragment 所依附的 Activity,然后再使用上面提到的代码来设置状态栏颜色。
以下是获取 Fragment 所依附的 Activity 并设置状态栏颜色的代码示例:
```java
public class MyFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.my_fragment_layout, container, false);
// 获取 Fragment 所依附的 Activity
Activity activity = getActivity();
// 设置状态栏颜色
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = activity.getWindow();
window.setStatusBarColor(ContextCompat.getColor(activity, R.color.colorPrimaryDark));
}
return view;
}
}
```
在上面的代码中,我们获取了 Fragment 所依附的 Activity,然后使用 `Window.setStatusBarColor()` 方法设置了状态栏颜色。请注意,我们还需要检查设备的 Android 版本,以确保我们只在 Android 5.0 及以上版本上设置状态栏颜色。如果你的应用需要支持旧版本的 Android,你还需要添加类似于上面提到的版本检查代码。
另外,你还需要在 Fragment 的布局文件中添加 `android:fitsSystemWindows="true"` 属性,以确保 Fragment 正确地显示在状态栏下方。
阅读全文