状态栏叠加图像向下移动 android 没用
Status bar overlay image shifted down in android nought
我正在尝试将图像添加到 xamarin 表单中的状态栏 android..
但是图像完全向下移动并进入我在 android 牛轧糖中设置的正常状态栏颜色。
这发生在我将 xamarin 表单版本更新到 2.4.0.74863 时
在 2.3.4.270 中它工作正常。这是 xamrin 表单问题还是我的代码问题。
我用来在状态栏上绘制叠加层的代码是
activity.Window.AddFlags(WindowManagerFlags.DrawsSystemBarBackgrounds);
activity.Window.ClearFlags(WindowManagerFlags.TranslucentStatus);
activity.Window.SetStatusBarColor(Android.Graphics.Color.Transparent);
ViewGroup contentView = (ViewGroup)activity.FindViewById(Android.Resource.Id.Content);
//if (contentView.ChildCount > 1)
//{
// contentView.RemoveViewAt(1);
//}
// get status bar height
int res = activity.Resources.GetIdentifier("status_bar_height", "dimen", "android");
int height = 0;
if (res != 0)
height = activity.Resources.GetDimensionPixelSize(res);
// create new imageview and set resource id
ImageView image = new ImageView(activity);
LinearLayout.LayoutParams params1 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, height);
params1.Width = LinearLayout.LayoutParams.MatchParent;
image.LayoutParameters = params1;
image.SetImageResource(imageRes);
image.SetScaleType(ImageView.ScaleType.FitXy);
// add image view to content view
contentView.AddView(image);
contentView.SetFitsSystemWindows(true);
我将其称为 xaml 页面的依赖关系。
编辑
在我添加@york 提到的标志后,底部导航栏变得半透明并且应用程序视图下降。
只需在您的 Activity
样式中添加以下代码即可:
<style name="MyTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
...
<item name="android:windowTranslucentStatus">false</item>
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
</style>
效果:
我正在尝试将图像添加到 xamarin 表单中的状态栏 android.. 但是图像完全向下移动并进入我在 android 牛轧糖中设置的正常状态栏颜色。
这发生在我将 xamarin 表单版本更新到 2.4.0.74863 时 在 2.3.4.270 中它工作正常。这是 xamrin 表单问题还是我的代码问题。
我用来在状态栏上绘制叠加层的代码是
activity.Window.AddFlags(WindowManagerFlags.DrawsSystemBarBackgrounds);
activity.Window.ClearFlags(WindowManagerFlags.TranslucentStatus);
activity.Window.SetStatusBarColor(Android.Graphics.Color.Transparent);
ViewGroup contentView = (ViewGroup)activity.FindViewById(Android.Resource.Id.Content);
//if (contentView.ChildCount > 1)
//{
// contentView.RemoveViewAt(1);
//}
// get status bar height
int res = activity.Resources.GetIdentifier("status_bar_height", "dimen", "android");
int height = 0;
if (res != 0)
height = activity.Resources.GetDimensionPixelSize(res);
// create new imageview and set resource id
ImageView image = new ImageView(activity);
LinearLayout.LayoutParams params1 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, height);
params1.Width = LinearLayout.LayoutParams.MatchParent;
image.LayoutParameters = params1;
image.SetImageResource(imageRes);
image.SetScaleType(ImageView.ScaleType.FitXy);
// add image view to content view
contentView.AddView(image);
contentView.SetFitsSystemWindows(true);
我将其称为 xaml 页面的依赖关系。
编辑
在我添加@york 提到的标志后,底部导航栏变得半透明并且应用程序视图下降。
只需在您的 Activity
样式中添加以下代码即可:
<style name="MyTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
...
<item name="android:windowTranslucentStatus">false</item>
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
</style>
效果: