AbsoluteLayout 什么时候被弃用的?
时间: 2023-11-03 10:05:00 浏览: 49
AbsoluteLayout在Android SDK 1.5中被标记为过时(deprecation),并在Android SDK 3.0中被彻底弃用,不再建议使用。这是因为AbsoluteLayout不适应不同屏幕分辨率的设备,容易导致UI界面错位或者不美观。Android官方推荐使用更加灵活的布局方式,如LinearLayout、RelativeLayout和ConstraintLayout等。
相关问题
Ext.Net中,第一种:AbsoluteLayout布局方式
Ext.Net 中的 AbsoluteLayout 布局方式是将组件按照绝对坐标进行定位,可以通过设置组件的 x 和 y 坐标来控制组件的位置。这种布局方式适用于需要精确控制组件位置的场景,但是需要手动计算和设置每个组件的位置和大小,不太灵活且容易出错。通常情况下,建议使用其他更灵活的布局方式,如 BorderLayout 或者 VBox/HBox 布局。
以下是一个简单的 AbsoluteLayout 布局的例子:
```
<ext:Panel runat="server" Layout="AbsoluteLayout">
<Items>
<ext:Button runat="server" Text="Button 1" X="10" Y="10" />
<ext:Button runat="server" Text="Button 2" X="50" Y="50" />
</Items>
</ext:Panel>
```
在这个例子中,我们创建了一个 Panel,并将其 Layout 属性设置为 AbsoluteLayout。在 Panel 中添加了两个 Button,分别设置了它们的 x 和 y 坐标。这样,这两个 Button 就可以精确地定位在 Panel 中的指定位置了。
public partial class MainPage : ContentPage { public MainPage() { AbsoluteLayout AbsoluteLayout = new AbsoluteLayout { Margin = new Thickness(20) }; new Thread(new ThreadStart(async () => { while (true) { Application.Current.Dispatcher.Dispatch(async () => { //获取AbsoluteLayout的子元素集合 var children = AbsoluteLayout.Children; //遍历子元素集合,将每个子元素从AbsoluteLayout中移除 while (children.Count > 0) { absoluteLayout.Children.Remove(children[0]); } //创建一个Random对象用于生成随机颜色 Random random = new Random();创建一个 List<Task>用于存放旋转任务 List<Task> tasks = new List<Task>();for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { //生成一个随机颜色 Color color = Color.FromRgb(random.下一个(256),随机。下一个(256),随机。下一页(256));创建一个BoxView对象并设置颜色和圆角 BoxView boxView = new BoxView { 颜色 = 颜色, 角半径 = 10 };将BoxView对象添加到AbsoluteLayout中,并设置布局标志为None Add(AbsoluteLayout, boxView, new Rect(60 * i, 60 * j, 50, 50), AbsoluteLayoutFlags.None);把BoxView的旋转任务添加到List<Task>中 tasks.Add(boxView.RelScaleTo(1, 3000));任务。Add(boxView.RelScaleTo(-1, 3000));} } //等待所有旋转任务完成 await Task.WhenAll(tasks);});等待一秒钟 await Task.Delay(6000);} })).开始();内容 = 绝对布局;初始化组件();} public void Add(AbsoluteLayout AbsoluteLayout, IView view, Rect rect, AbsoluteLayoutFlags flags) { if (view == null) 抛出新的 ArgumentNullException(nameof(view)); absoluteLayout.Add(view); absoluteLayout.SetLayoutBounds(view, rect); absoluteLayout.SetLayoutFlags(view, flags); } }他只执行了缩小没执行放大
根据你提供的代码,我看到你在创建 BoxView 对象后,将其添加到了 AbsoluteLayout 中,并使用了 `RelScaleTo` 方法添加了缩放动画任务。但是,我没有看到任何代码执行放大操作。在你的代码中,你只添加了将 BoxView 缩小的任务,因此只有缩小动画被执行了。
如果你想要添加放大动画任务,你可以在 `for` 循环中添加以下代码:
```csharp
tasks.Add(boxView.RelScaleTo(2, 3000)); // 将 BoxView 放大两倍
tasks.Add(boxView.RelScaleTo(0.5, 3000)); // 将 BoxView 缩小到原来的一半
```
这样,每个 BoxView 对象都会执行放大和缩小的动画任务。希望这可以帮助你解决问题。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)