- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在 Android 6.0 Marshmellow 上的 Xamarin Forms 中遇到绝对布局问题
当设置 View 以填充整个屏幕时,屏幕底部会留下 1px 的间隙。
奇怪的是,如果您将屏幕旋转到横向,它就不会发生。或者在 4.4
xaml:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="XamarinTest.Page1">
<AbsoluteLayout BackgroundColor="White">
<BoxView BackgroundColor="Red" AbsoluteLayout.LayoutBounds="0,0,1,1" AbsoluteLayout.LayoutFlags="All">
</BoxView>
</AbsoluteLayout>
</ContentPage>
屏幕截图:(这些来自 vs 模拟器,但我在设备上也有相同的行为,例如 samsung galaxy 6)
在这个例子中,我使用了一个 boxview fillign 屏幕,但它的任何类型的位置都与屏幕底部对齐。
我正在寻找的是某种变通方法或自定义渲染器,它将确保在 1,1 处绘制或拉伸(stretch)屏幕的整个高度的项目放置或拉伸(stretch)到屏幕底部
最佳答案
这是 Xamarin.Forms 2.1.0 中的一个已确认错误:https://bugzilla.xamarin.com/show_bug.cgi?id=40092 .
您可以尝试通过覆盖 LayoutChildren
并将一个高度像素发送到基本实现来修复它。
public class MyAbsoluteLayout : AbsoluteLayout
{
protected override void LayoutChildren(double x, double y, double width, double height)
{
base.LayoutChildren(x, y, width, height+1);
}
}
然后在您的 XAML 中使用它
<local:MyAbsoluteLayout BackgroundColor="White">
<BoxView BackgroundColor="Red" AbsoluteLayout.LayoutBounds="0,0,1,1" AbsoluteLayout.LayoutFlags="All">
</BoxView>
</local:MyAbsoluteLayout>
如果这没有帮助,您可以尝试重新实现 LayoutChildren
函数并像这样操作结果
public class MyAbsoluteLayout : AbsoluteLayout
{
private readonly MethodInfo _computeLayout;
public MyAbsoluteLayout()
{
_computeLayout = typeof(AbsoluteLayout).GetTypeInfo().GetDeclaredMethod("ComputeLayoutForRegion");
}
protected override void LayoutChildren(double x, double y, double width, double height)
{
foreach (View logicalChild in Children)
{
Size region = new Size(width, height);
Rectangle layoutForRegion = (Rectangle)_computeLayout.Invoke(null, new object[] { logicalChild, region });
layoutForRegion.X += x;
layoutForRegion.Y += y + 1;
Rectangle bounds = layoutForRegion;
logicalChild.Layout(bounds);
}
}
}
关于android - AbsoluteLayout 不填满屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36692647/
使用 AbsoluteLayout 的 JFrame 边缘是否可以有一些额外的空间?当我将一个按钮作为 JFrame 最下方的组件时,它会直接定位在 JFrame 窗口的底部边缘上,而且看起来很糟糕。
问题“AbsoluteLayout 的有用替代品是什么?”似乎是一个经常被问到但从未真正回答过的问题。我的情况如下: 我想放置圆圈(为了简单起见,我使用 RadioButtons 进行测试),以便圆圈
我在 Android 6.0 Marshmellow 上的 Xamarin Forms 中遇到绝对布局问题 当设置 View 以填充整个屏幕时,屏幕底部会留下 1px 的间隙。 奇怪的是,如果您将屏幕
为什么声明 android:id="@+id/" 总是在我想运行我的应用程序时出现?有没有办法删除它?谢谢 错误 Error:(16, 21) Resource id cannot be an e
我正在尝试恢复我的旧项目。我想为此使用 maven 并且我想添加 AbsoluteLayout 依赖项。我是 Maven 的新手,所以我不知道出了什么问题。我发现这应该有效: org.netbean
我正在尝试用 JAVA 为银行应用程序制作 GUI。如果我在 Eclipse 中使用 WindowBuilder,那么为我的框架使用绝对布局很容易创建任何东西,但问题是当我调整框架大小时。所以这就
我正在尝试编写一个日历应用程序,我计划有一个网格(周 View ),它可能是一个 TableLayout 并且直接在上面我将必须绝对定位事件网格。 但 AbsoluteLayout 已被弃用。我应该改
slider 是这样开始的。 然后我想对其进行动画处理,使其向上并变宽一点,因此我使用了以下代码片段: await one.LayoutTo(new Rectangle(0.5, 0.1, 0.8,
我有这个 .XAML 页面,但 Scroll 不起作用当我删除 AbsoluteLayout 并采用 stacklayout 时,它工作正常。
我有以下布局: 还有一个简短的代码: public class LayoutTest extends Activity {
我在一台机器上使用 NetBeans 使用 AbsoluteLayout 制作了一个 Java 应用程序,然后将项目数据文件移动到另一台机器,在那里我收到了一些库(包括 AbsoluteLayout
我有一个 Xamarin 项目。我为 IOS、Android 和 UWP 开发。在我的应用程序中,我有 UI 元素的手动布局逻辑。在 IOS 中,我可以使用 frame 属性来设置 View 的渲染位
我看到帖子说 FrameLayout 是替代方案,我应该使用边距来定位东西(这让我觉得非常违反直觉,但是好吧......如果它有效,我会接受它)。但是,我无法让它工作,所以,我正在寻求帮助。 这是我的
目前,我在使用 Vaadin Table 时遇到了一个非常奇怪的问题。如果我在表中使用 AbsoluteLayout 数据不会显示,但如果我使用即 HorizontalLayout,数据会完美显示
我想通过 以编程方式 提供 x,y 坐标来使用 AbsoluteLayout View 显示标签。问题是 ScrollView 覆盖了 AbsoluteLayout 并且无法滚动页面。 最佳答案 不要
如果不推荐使用 AbsoluteLayout,我可以使用什么来代替它? 我已经完成了一个使用 AbsoluteLayout 的应用程序,但它不适用于不同的屏幕分辨率。我使用是因为我可以设置按钮的 X
我正在使用带有 AbsoluteLayout 的 Xamarin.Forms,但是,我不确定如何处理元素的定位。 我正在使用比例值,所以如果我在 AbsoluteLayout.LayoutBounds
我已将我的 Layout 切换为 AbsoluteLayout 并且所有内容都已就位,但是当我运行程序时,我的 JButtons 是不可见的,直到我将鼠标悬停在它们上面。我应该更改什么以使它们始终可见
我正在开发一个 Android 应用程序,其布局包括围绕圆形元素排列的按钮。由于所述元素的角会与其他按钮重叠,因此推荐的布局类型(LinearLayout 等)不是可行的选择。 但是,我想正确地执行此
AbsoluteLayout类已被弃用,但仍然可以用代码编写它并且它可以工作。使用这个类会不会有什么问题?将应用程序部署到手机上后能否正常运行? 谢谢 最佳答案 弃用通常意味着您不鼓励使用它,因为存在
我是一名优秀的程序员,十分优秀!