我有一个 Xamarin 项目。我为 IOS、Android 和 UWP 进行开发。在我的应用程序中,我有 UI 元素的手动布局逻辑。在 IOS 中,我可以使用frame 属性来设置视图的渲染位置。我可以在 UWP 中执行相同的操作,方法是使用 Canvas 作为容器并使用 Canvas.Left、Canvas.Top 属性来设置 x、y 位置,并且我的代码具有执行布局的逻辑。我对如何在 Android 中实现这一点感到困惑。 AbsoluteLayout 似乎是一个完美的匹配,但它已被弃用。我可以使用其他布局来实现此目的还是应该创建自定义 ViewGroup 类?
您可以使用 FrameLayout 并使用上边距和左边距在其中放置项目。在 XML 中,它看起来像:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<View
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginLeft="100dp"
android:layout_marginTop="100dp"
/>
</FrameLayout>
如果你想从代码中设置它,那么你可以使用 LayoutParams:
FrameLayout.LayoutParams param = (FrameLayout.LayoutParams) view.getLayoutParams();
param.leftMargin = 100;
param.topMargin = 100;
param.height = 50;
param.width = 50;
view.setLayoutParams(param);
请注意,代码中的值是像素而不是 dp,因此您必须进行转换。我不确定这将如何转换为 Xaramin,但它给了你这个想法。
无论哪种方式,您都必须考虑当设备尺寸不寻常的用户使用您的应用程序时会发生什么。 Android 没有太多使用绝对布局的原因是,有太多不同的设备尺寸/密度,它们通常不切实际。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)