更新
问题已经解决了。好像我需要两个:
android:layout_alignParentLeft="true"
和
android:layout_toLeftOf="@id/Image"
线性布局中的线。
<LinearLayout
android:id="@+id/Text"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="10dip"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@id/Image"
android:gravity="left">
我正在尝试创建一个布局,左侧有两个textViews,右侧有一个图像:
一切正常,除非其中任何一个textViews中包含少量文本。 当textView中包含较少量的文本时,它会被进一步推到右边,并且不再与屏幕的左侧齐平。
我的问题是,如何制作它以便无论如何,每个textViews将始终与父级的左侧齐平;相反,如果文本中的文本数量较少,则将其推向右侧。
我已将下面的链接包含在布局图像中(我无法发布图像)
第一个屏幕截图是布局工作正常,以及我希望它一直看起来如何。
第二个截图是布局制动。你能看到突出显示的行以及它是如何被推到右边的,这就是我想要纠正的。
这是代码,如果有人可以帮助我那将是伟大的!谢谢!
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="8dp">
<ImageView
android:id="@+id/Image"
android:layout_width="60dp"
android:layout_height="60dp"
android:padding="5dp"
android:src="@drawable/icon"
android:layout_alignParentRight="true" />
<LinearLayout
android:id="@+id/Text"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="10dip"
android:layout_toLeftOf="@id/Image"
>
<TextView
android:id="@+id/Text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FF7F3300"
android:paddingLeft="0dip"
android:textSize="20dip"
android:layout_alignParentLeft="true"
/>
<TextView
android:id="@+id/Text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="14dip"
android:paddingLeft="0dip"
android:textColor="#FF267F00"
android:layout_alignParentLeft="true"
/>
</LinearLayout>
</RelativeLayout>
答案 0 :(得分:0)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightsum="5"
android:padding="8dp">
<LinearLayout
android:id="@+id/Text"
android:orientation="vertical"
android:layout_width="0dp"
android:layout_weight="4"
android:layout_height="wrap_content"
android:paddingLeft="10dip">
<TextView
android:id="@+id/Text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FF7F3300"
android:textSize="20sp"/>
<TextView
android:id="@+id/Text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="14sp"
android:textColor="#FF267F00"/>
</LinearLayout>
<ImageView
android:id="@+id/Image"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:src="@drawable/icon"
android:scaleType="center"/>
</LinearLayout>
答案 1 :(得分:0)
只需删除此行
即可android:layout_toLeftOf="@id/Image"
没有必要这样做。由于您将LinearLayout对齐到图像的左侧,因此当文本较小时,LinearLayout将自身对齐到右侧(图像的左侧)。所以如果你删除上面的行,你的LinearLayout和TextView现在将自动分配到左边。但在这种情况下,您必须将ems设置为两个TextView,以避免与图像重叠。
答案 2 :(得分:0)
只需在线性布局中插入android:layout_alignParentLeft="true"
...就像魅力一样
<LinearLayout
android:id="@+id/Text"
android:orientation="vertical"
android:layout_alignParentLeft="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="10dip"
android:layout_toLeftOf="@id/Image"
>