我在我的应用程序中使用ConstraintLayout
来制作应用程序布局。我试图创建一个屏幕,其中一个EditText
和Button
应该在中心,Button
应该低于EditText
,边缘顶部只有16dp。
这是我的布局和截图,它是如何看现在。
activity_authenticate_content.xml
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="16dp"
android:paddingRight="16dp"
tools:context="com.icici.iciciappathon.login.AuthenticationActivity">
<android.support.design.widget.TextInputLayout
android:id="@+id/client_id_input_layout"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent">
<android.support.design.widget.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/login_client_id"
android:inputType="textEmailAddress" />
</android.support.design.widget.TextInputLayout>
<android.support.v7.widget.AppCompatButton
android:id="@+id/authenticate"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@string/login_auth"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="@id/client_id_input_layout"
app:layout_constraintRight_toRightOf="@id/client_id_input_layout"
app:layout_constraintTop_toTopOf="@id/client_id_input_layout" />
</android.support.constraint.ConstraintLayout>
9条答案
按热度按时间zzlelutf1#
有一个更简单的方法。如果您按如下方式设置布局约束,并且
EditText
的大小是固定的,则它将在ConstraintLayout
中居中:左/右对使视图水平居中,上/下对使视图垂直居中。这是因为当你设置左、右或上、下约束大于视图本身时,视图会在两个约束之间居中,即偏差设置为50%。您还可以通过设置您自己的偏置向上/向下或向右/向左移动视图。稍微摆弄一下,你就会看到它是如何影响视图位置的。
xeufq47z2#
更新:
链条
您现在可以在
packed
模式下使用chain
功能,如尤金的回答中所述。指导原则
您可以在50%位置使用水平基准线,并为edittext和button添加底部和顶部(8dp)约束:
ejk8hzay3#
带有指南的解决方案仅适用于这种具有单行
EditText
的特定情况。要使其适用于多行EditText
,您应该使用layout_constraintVertical_chainStyle="packed"
。它看起来是这样的:
您可以在以下文章中阅读更多关于使用链的信息:
lb3vh1jj4#
可以按屏幕大小的百分比居中显示视图。
此示例使用宽度和高度的50%:
这是使用ConstraintLayout版本1.1.3完成的。别忘了将其添加到gradle中的依赖项中,如果有新版本,请增加版本:
rsaldnfx5#
在视图中添加这些标记
你可以在设计模式下右键点击并选择居中。
dauxcl2d6#
您可以使用
layout_constraintCircle
作为ConstraintLayout
内部的中心视图。与约束圆父和零半径,你可以让你的看法是中心的父。
iqxoj9l97#
只需在布局中添加
android:gravity="center"
即可:)zqry0prt8#
使用方式
示例
46scxncf9#
下面将图像在屏幕上居中