gpt4 book ai didi

java - 一些 Android 手机在屏幕底部和右侧切断 UI

转载 作者:行者123 更新时间:2023-11-30 02:08:09 27 4
gpt4 key购买 nike

我已经在其他几台设备上进行了测试,我的 UI 看起来不错。

但是在 Samsung Note 3 上,UI 在底部被截断了。

我已经记录了系统规范并进行了计算。我的设备屏幕高度为 1920。

我有一个大小为 108 x 108 的按钮。

我希望该按钮位于屏幕底部(我没有使用 XML,我使用的是 Java)。

    _button.setMinimumHeight(buttonDimension);
_button.setMaxHeight(buttonDimension);
_button.setY(1920 - 108);

然而,这会导致按钮底部被切断(仅在三星 Note 3 上)。另外,如果我尝试右对齐,那里也会有轻微的切断。它看起来像在底部偏移了大约 25 个像素。

这是怎么回事?

三星似乎将实际渲染窗口下方和右侧的较小区域视为“屏幕高度”的一部分。

您知道在与报告值不符的情况下如何获取屏幕的实际显示高度吗?

如果我使用 layoutparams 并对齐到底部,它确实可以正常工作,但我需要它来处理像素数据。

最佳答案

为什么要在其中硬编码维度?仅仅因为屏幕高度为 1920x1080 并不意味着您的应用程序实际上有那么多像素可用(除非您使用沉浸式全屏模式)。

你的按钮是什么类型的布局?如果它在 FrameLayout 中,只需将按钮的 layout_gravity 设置为 bottom|center_horizo​​ntal。在 Java 中,这看起来像:

FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) _button.getLayoutParams();
params.gravity = Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM;
_button.requestLayout();

相对布局?只需使用 layout_centerHorizo​​ntallayout_alignParentBottom:

RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) _button.getLayoutParams();
params.addRule(RelativeLayout.CENTER_HORIZONTAL);
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
_button.requestLayout();

编辑:查看您最近的编辑,您应该只使用父级的实际尺寸来确定定位。您可以将 OnGlobalLayoutListener 添加到父布局以确定其大小:

parent.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
parent.getViewTreeObserver().removeGlobalOnLayoutListener(this);
int parentHeight = parent.getHeight();
// do your positioning
}
}

关于java - 一些 Android 手机在屏幕底部和右侧切断 UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30444616/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com