如何在 Xamarin Android 的屏幕上显示全尺寸视图?
Posted
技术标签:
【中文标题】如何在 Xamarin Android 的屏幕上显示全尺寸视图?【英文标题】:How to display a View in Full Size on screen in Xamarin Android? 【发布时间】:2019-04-19 15:09:46 【问题描述】:我无法设置与Display Size
匹配的View Size
,下面是代码,它是Transparent View
TestView testView;
protected override void OnCreate(Bundle savedInstanceState)
base.OnCreate(savedInstanceState);
testView = new TestView(this);
SetContentView(testView);
应用运行时View
的Default Height
是height=1206
但是显示高度是1280
,我使用了以下方法来设置视图大小与屏幕大小匹配,但都不起作用
不起作用
protected override void OnCreate(Bundle savedInstanceState)
base.OnCreate(savedInstanceState);
testView = new TestView(this);
IWindowManager window = null;
window = this.Application.GetSystemService(Context.WindowService).JavaCast<IWindowManager>();
Display defaultDisplay = window.DefaultDisplay;
DisplayMetrics display = new DisplayMetrics();
defaultDisplay.GetRealMetrics(display);
int width = display.WidthPixels;
int height = display.HeightPixels;
RelativeLayout.LayoutParams parms = new
RelativeLayout.LayoutParams(width, height);
testView.LayoutParameters = parms;
SetContentView(testView);
结果:
不起作用:
protected override void OnCreate(Bundle savedInstanceState)
base.OnCreate(savedInstanceState);
testView = new TestView(this);
SetContentView(testView);
if (Build.VERSION.SdkInt >= BuildVersionCodes.Kitkat)
Window.SetFlags(WindowManagerFlags.LayoutNoLimits,
WindowManagerFlags.LayoutNoLimits);
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowTranslucentStatus">true</item>
结果:
如何设置View的Display高度?
【问题讨论】:
我认为您应该阅读这里:developer.android.com/training/system-ui/… 并简单地将 Java 代码转换为 C# 对应代码 【参考方案1】:您需要在清单文件中声明您的活动应该是全屏的:
<activity android:name=".ActivityName"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>
如果您想通过代码获取它,只需在活动的 onCreate 方法中使用这些行:
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
或将以下行添加到 style.xml 文件中
//your theme
<style name="Theme.AppCompat.Transparent.NoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
//XML lines for full screen
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
</style>
如需更多帮助,请查看此答案: Fullscreen Activity in Android?
【讨论】:
以上是关于如何在 Xamarin Android 的屏幕上显示全尺寸视图?的主要内容,如果未能解决你的问题,请参考以下文章
MvvmCross Xamarin Android 在初始屏幕上挂起并带有链接
如何将ImageView放在Xamarin.Android应用程序中,根据设备屏幕大小自行调整大小?
如何验证照片捕获屏幕在 Xamarin UITest 中是不是打开?