Android 元素之间的约束转化为相对性约束
我的布局中包含此部分:Android 元素之间的约束转化为相对性约束,android,android-layout,android-relativelayout,Android,Android Layout,Android Relativelayout,我的布局中包含此部分: <RelativeLayout android:id="@+id/title_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingLeft="@dimen/keyline_4" android:paddingTop="10dp" android:paddingRigh
<RelativeLayout
android:id="@+id/title_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/keyline_4"
android:paddingTop="10dp"
android:paddingRight="@dimen/keyline_4"
app:layout_constraintTop_toBottomOf="@+id/avatar_layout"
android:visibility="visible">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/flag_icon"
android:layout_width="26dp"
android:layout_height="26dp"
android:layout_marginRight="@dimen/keyline_0"
android:layout_toLeftOf="@+id/title"
android:src="@drawable/ic_modify"
android:visibility="visible"/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/title"
style="@style/ProfileTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="TEST TEST"
android:ellipsize="end"
android:maxLines="1"
android:singleLine="true" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/update_icon"
android:layout_width="@dimen/keyline_4"
android:layout_height="@dimen/keyline_4"
android:layout_toRightOf="@+id/title"
android:layout_marginLeft="@dimen/keyline_0"
android:src="@drawable/ic_modify"
android:visibility="visible"/>
</RelativeLayout>
布局编辑器的结果是:一切正常
但是如果文本像这样长,图标就会消失
如何将图标保持在屏幕的左侧和右侧?文本应包装在这两个图标之间
多谢各位 现在,您正在将文本约束到父对象,将图像约束到文本。您需要将图像约束到父对象,将文本约束到图像 要实现这一点,您需要使用ConstraintLayout而不是RelativeLayout。可能是这样的我在使用dimen的地方添加了我自己的值: 这将为您提供类似于长文本的内容: 还有一些简短的文字:
这对我来说是一个具有挑战性的问题。经过几个小时的努力,我无法通过线性布局、相对布局或约束布局来获得解决方案。我也期待着看到一个解决方案的任何一个提到的布局或任何其他 同时,如果您的时间紧迫,我建议您选择一种变通方法,而不是解决方案。也就是说,您可以考虑使用AppCupTeExVIEW的DababyStand和DababelEnter属性,因此生成的布局如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/title_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center" >
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:drawableStart="@mipmap/ic_modify"
android:drawableEnd="@mipmap/ic_modify"
android:text="TEST TEST TEST TEST TEST TEST TEST TEST"
android:ellipsize="end"
android:maxLines="1"
android:singleLine="true" />
</RelativeLayout>
注意,对于测试,我使用了默认Android Studio项目附带的@mipmap/ic_启动器。对于每个屏幕分辨率组,ic_启动器的大小为正方形。您可能需要对ic_modify执行相同的操作,以防止其宽度拉伸
如果适用,另一个选项可能是创建自定义视图。图2不是OP想要的。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/title_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center" >
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:drawableStart="@mipmap/ic_modify"
android:drawableEnd="@mipmap/ic_modify"
android:text="TEST TEST TEST TEST TEST TEST TEST TEST"
android:ellipsize="end"
android:maxLines="1"
android:singleLine="true" />
</RelativeLayout>