C#Xamarin Android的响应式布局如何?

Tes*_*est 0 c# android responsive-design xamarin

我在Xamarin制作一个Android应用程序.我想让它响应,所以我需要获得屏幕大小值(这是有效的).现在我需要将此发送到另一个活动,但我无法获得该值,因为我首先需要打开资源布局.

string width1 = Intent.GetStringExtra("width") ?? "Data not available";
width = width1.ToString();
string height2 = Intent.GetStringExtra("height") ?? "Data not available";
height = height2.ToString();

// Set our view from the "recepten" layout resource
if (Convert.ToInt32(width) <= 350 && Convert.ToInt32(height) <= 420)
{
SetContentView(Resource.Layout.login);
}
else
{
SetContentView(Resource.Layout.loginSmall);
}
Run Code Online (Sandbox Code Playgroud)

我试过这个(不工作),但是当另一个布局已经打开时,我无法获得另一个布局.

有谁知道怎么样?

Ste*_*zek 5

我认为你走错了路.您永远不需要查询响应布局的实际屏幕大小.

您可以为不同的屏幕尺寸定义不同的布局,Android将为设备选择最佳的布局.

为此,创建一些布局文件夹,其中包含"大","xlarge"等,如官方Android文档中所述:

Resources/layout/my_layout.xml // layout for normal screen size ("default") 
Resources/layout-large/my_layout.xml // layout for large screen size    
Resources/layout-xlarge/my_layout.xml // layout for extra-large screen size
Resources/layout-xlarge-land/my_layout.xml // layout for extra-large in landscape orientation
Run Code Online (Sandbox Code Playgroud)

调用SetContentView包含必要的逻辑,为设备的屏幕大小选择正确的布局.

阅读此处有关支持多种屏幕尺寸的更多信息.