将项目锚定到屏幕中心并带有一些偏移

Posted

技术标签:

【中文标题】将项目锚定到屏幕中心并带有一些偏移【英文标题】:Anchoring item to center of the screen with some offset 【发布时间】:2016-09-26 09:44:04 【问题描述】:

我正在尝试构建一个带有聊天气泡的屏幕。问题是当我使用android:layout_centerHorizontal="true" 时,气泡会精确到中心并根据文本大小在两个方向上扩展。但我想将这个气泡的中心 20dp 锚定到屏幕或父布局的中心。

<View
                android:id="@+id/anchor"
                android:layout_
                android:layout_
                android:layout_centerHorizontal="true" />
            <TextView
                android:id="@+id/textview"
                android:text="Some Text"
                style="Style_with_layout_height_width_etc"
                android:layout_alignParentBottom="true"
                android:layout_alignStart="@+id/anchor"
                android:layout_marginStart="-20dp"
                android:layout_marginBottom="20dp"/>

我已经尝试过诸如具有 0dp 宽度和高度的锚视图之类的方法,但它没有用。

EDIT-1:添加 XML 代码以供进一步参考

EDIT-2:使用约束布局和设置水平偏差帮助我解决了问题。

【问题讨论】:

请分享你的一些代码 你现在可以看看代码@ReazMurshed 问题还是不是很清楚。尝试添加有关您正在获得什么以及您想要什么的图片。 简单来说,我想将文本视图的中心固定到屏幕上的某个点。在我的情况下,中心应该是屏幕中心右侧的 20dp,即 360dp 屏幕上的 200dp。我认为您不需要此图像 是的,我仍然需要它的基本草图,以便我可以看到TextView 在此处输入长文本和短文本以查看差异时的外观。 【参考方案1】:

考虑使用新的ConstraintLayout 来根据您的需要精确调整视图的位置。

参考- https://developer.android.com/training/constraint-layout/index.html

【讨论】:

感谢您的建议,但它没有锚定中心的选项 小小的修补帮助我解决了这个问题。非常感谢。

以上是关于将项目锚定到屏幕中心并带有一些偏移的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI - 从锚定到按钮框架的按钮点击动画到屏幕上

为啥锚定到 ApplicationWindow 的项目的大小为零?

将 QGraphicsView 锚定到屏幕的角落

如何将对话框锚定到listview qt qml中的按钮

无法锚定到不是父项或同级 QML QtQuick 的项目

锚定到 div 以转到 div 上方的某个点以允许固定标题 [重复]