防止textview被进一步推向右边 - Android

时间:2014-10-27 15:27:10

标签: android layout android-linearlayout

更新

问题已经解决了。好像我需要两个:

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将始终与父级的左侧齐平;相反,如果文本中的文本数量较少,则将其推向右侧。

我已将下面的链接包含在布局图像中(我无法发布图像)

第一个屏幕截图是布局工作正常,以及我希望它一直看起来如何。

http://pbrd.co/1tZhJti

第二个截图是布局制动。你能看到突出显示的行以及它是如何被推到右边的,这就是我想要纠正的。

http://pbrd.co/1tZhVss

这是代码,如果有人可以帮助我那将是伟大的!谢谢!

    <?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>

3 个答案:

答案 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"
      >