Android 中已弃用的 AbsoluteLayout 有什么替代方案?

2024-02-08

我有一个 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(使用前将#替换为@)

Android 中已弃用的 AbsoluteLayout 有什么替代方案? 的相关文章

随机推荐

  • MySql 对视图列的注释?

    MySql 是否可以存储视图列的注释 我知道如何向普通表和列添加注释 但我不确定是否可以对视图这样做 我所知道的是视图 对于某些方面 的行为就像表一样 因此可以像这样运行查询 SELECT column name column commen
  • 捕获 Global.asax 中的错误

    我的中有以下内容Global asax这是为了处理错误 void Application Error object sender EventArgs e Exception exception Server GetLastError if
  • Android:重叠两个视图(故意的!)

    只是想知道是否可以重叠两个元素 这是我试图实现的目标的说明 基本上它是一个圆形的 ImageButton 其中心位于矩形的角上 我应该如何定位它 我可以使用RelativeLayout或其他东西吗 您可以对蓝色框使用相对布局 将 Image
  • Decimal.TryParse 不解析我的十进制值

    当我尝试转换类似 0 1 的值 来自文本框中的用户 时 我的值 b 始终为 false bool b Decimal TryParse 0 1 out value 怎么会来这里工作呢 指定解析的区域性 您当前的文化可能使用某种不同的数字格式
  • Scala 中闭包的内存管理是如何工作的?

    Scala 允许像这样的闭包 def newCounter var a 0 gt a 1 a 它定义了一个函数 每次调用时都会返回一个新的独立计数器函数 从1 scala gt val counter1 newCounter counter
  • 如何实现低通滤波器?

    我正在对陀螺仪和加速度计数据进行一些数学运算 我想对结果数据进行低通滤波 那么有人可以发布一些低通滤波器的通用代码吗 一阶 IIR 低通滤波器可以采用以下形式 output value rate input value 1 0 rate p
  • 在 iPad/iOS6.0 上使用“应用程序锁定”配置文件设置(又名“信息亭模式”)时出错

    背景 作为 iOS6 的一部分 Apple 为其 iPad 提供了一种 信息亭模式 该模式将设备锁定到一个应用程序中 甚至也可以直接启动到该应用程序中 非常适合在零售店 餐厅 等场所使用 iPad 为了使用此功能 首先必须使用 Apple
  • NoSQL:从表 DynamoDB/Azure 表存储获取最新值

    我有一个小问题需要一些建议 假设我们有几百个数据表 每个数据表有几千万行 数据表是时间戳 键 值 数据表每秒写入一次 每个表的最新条目应该可以快速获取 并且很可能被查询最多 有点像 实时跟踪数据 由于缺少 Last 或类似的内容 我正在考虑
  • 如何在左侧对 UITableViewCell 进行重新排序控制?

    我正在做一个新闻阅读器应用程序 我想让用户可以选择显示 隐藏新闻类别 例如热门新闻 商业 技术 体育等 并像 Android 中的 BBC 新闻应用程序一样重新排序 见下图 我的问题是 如何在单元格左侧进行重新排序控制 编辑模式下默认位置在
  • 将 d3.js 气泡转换为基于强制/重力的布局

    我有一组数据 正在使用 d3 js 进行可视化 我以气泡的形式表示数据点 其中气泡的配置如下 var dot svg selectAll g data data enter append g dot append circle attr c
  • 如何使用 Instagram API 获取图像

    如何获取用户图片Instagram API https api instagram com v1 users self access token 4049241557 1677ed0 5324ad17d9314645b528ad112da8
  • 为什么 .forEach 返回未定义?

    我知道这个主题已经有多个问题https stackoverflow com search q 5Bjavascript 5D return forEach undefined https stackoverflow com search q
  • 是否可以配置 Dozer,以便默认情况下可以通过 setter-/getter 方法直接访问字段

    我必须映射 Java 类的复杂结构 这些类通常不会通过 set get methods 公开其字段 这是给定的并且无法更改 因此映射只能在直接字段访问上执行 Dozer 允许访问各个字段 但我还没有找到一个设置来使其成为一般行为 因此 我不
  • WinHttpSendRequest 返回 ERROR_INVALID_PARAMETER

    我正在尝试获取必发API http docs developer betfair com docs display 使用 Windows API 我在尝试使用以下代码登录时遇到困难 用户名和密码已更改 char headers X Appl
  • 查找具有特定 git note 的提交

    我在我的存储库中使用 git Notes 有时我需要找到包含给定字符串的注释的提交 到目前为止我正在使用这个命令 git log show notes grep PATTERN format format H 这里的问题是 这会打印带有 P
  • ImageView 的 Cardview 阴影

    1 个屏幕截图 ImageView 可见性可见 2 个屏幕截图 消失 使用时ImageView with CardView我们可以说阴影根本不可见 尤其是在智能手机显示屏上
  • 如何使用 Semantic 的 React Table 组件从表行单击获取数据

    我试图从使用 Semantic UI 和 React 渲染的表中获取点击值 我使用不可变列表生成行 并且我想要一个 onclick 来访问唯一的 id 值 当我记录在回调中提取值的尝试时 我得到 bff3a3e9 489e 0e19 c27
  • 错误:MySQL 意外关闭 XAMPP [已关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 mysql Error MySQL shutdown unexpectedly mysql This may be due to a blo
  • 如何解决 TypeError: cv.Mat 不是构造函数 opencv.js?

    当我想从相机中检测 aruco 标记时 我在使用 opencv js 时遇到问题 每次我尝试使用该方法时 let image new cv imread img 我收到以下错误 TypeError cv Mat is not a const
  • Android 中已弃用的 AbsoluteLayout 有什么替代方案?

    我有一个 Xamarin 项目 我为 IOS Android 和 UWP 进行开发 在我的应用程序中 我有 UI 元素的手动布局逻辑 在 IOS 中 我可以使用frame 属性来设置视图的渲染位置 我可以在 UWP 中执行相同的操作 方法是