无法对齐视图

时间:2012-09-06 08:07:21

标签: android android-layout

这是很长版本的代码的一部分。所以发布整个代码是没有用的   我想对齐 RED 圈。两个位置都显示在红色圆圈中   整个活动的ParentLayoutRelativeLayout,但与此无关   请帮助我。我已经尝试了所有我认识的事情。

enter image description here

<LinearLayout 
    android:id="@+id/thumbnail"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/texttitle"
    android:orientation="horizontal"
    android:layout_marginTop="20dp"
    android:layout_marginBottom="20dp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:background="@drawable/Layoutborder"
    >
        <LinearLayout 
          android:id="@+id/Linearimagetop"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:padding="3dip"
          android:layout_alignParentLeft="true"
          android:background="@drawable/image_bg"
          >
            <ImageView
                android:id="@+id/productimage1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/defaultimage"
                android:layout_below="@+id/texttitle"
                />
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="5dp"
            >
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Availability "
                android:textColor="@color/black"
                android:textStyle="normal" />  
            <View
                android:layout_width="1dp" 
                android:layout_height="fill_parent"
                android:background="@color/black"
                android:layout_marginLeft="3dp"
                android:layout_marginRight="3dp"/>
            <TextView
                android:id="@+id/availibility"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="In Stock"
                android:textColor="#4A7023"
                android:textStyle="normal" 
                android:layout_marginLeft="3dp"/>
        </LinearLayout>
</LinearLayout>

4 个答案:

答案 0 :(得分:1)

您提供的代码未显示您在此处指定RED文本属性的位置。您可以将其添加为相对布局中的另一个元素,您可以在其中指定可用性和库存,以使其与前面的文本对齐。

编辑:(在了解您的实际问题后)

我建议换行另一种线性布局,这样你就可以将文字定位在图片上方,如下面的代码所示。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="100dp"
android:orientation="vertical" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="20dp" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="right"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:text="Availability "
            android:textStyle="normal" />

        <View
            android:layout_width="1dp"
            android:layout_height="fill_parent"
            android:layout_marginLeft="3dp"
            android:layout_marginRight="3dp" />

        <TextView
            android:id="@+id/availibility"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_marginLeft="3dp"
            android:text="In Stock"
            android:textColor="#4A7023"
            android:textStyle="normal" />
    </LinearLayout>
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:id="@+id/thumbnail"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/texttitle"
        android:layout_marginBottom="20dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="20dp"
        android:orientation="horizontal" >

        <LinearLayout
            android:id="@+id/Linearimagetop"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:padding="3dip" >

            <ImageView
                android:id="@+id/productimage1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/texttitle"
                android:src="@drawable/button" />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

答案 1 :(得分:1)

如果整个事情都在RelativeLayout中,请删除外部LinearLayout(根据需要移动边距等第一个子LinearLayout),并更改第二个子LinearLayout - 具有5dp填充的子项 -

android:layout_alignParentRight="true"
android:layout_alignParentTop="true"

如果您不想这样做并且由于某种原因必须保留外部LinearLayout,请移动

android:layout_marginTop="20dp"

从父LinearLayout到第一个子节点,并将第二个子节点的layout_width设置为fill_parent,并将android:gravity =“right”添加到它。

答案 2 :(得分:1)

将第3个LinearLayout更改为:

<LinearLayout
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:gravity="right"
    android:padding="5dp" >

不确定您对这种布局是否满意。

答案 3 :(得分:0)

这是实现上述输出的另一种方式。希望它可以帮助SomeOne。

<RelativeLayout
    android:id="@+id/thumbnail"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    android:layout_marginTop="20dp"
    android:layout_marginBottom="20dp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:background="@color/white"
    >
    <LinearLayout 
        android:id="@+id/Linearimagetop"
    android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="3dip"
        android:background="@drawable/image_bg"
        android:layout_alignParentLeft="true"
        >
        <ImageView
            android:id="@+id/productimage1"
        android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/defaultimage"
            android:layout_below="@+id/texttitle"
        />
    </LinearLayout>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        >
        <TextView
        android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Availability "
            android:textColor="@color/black"
            android:textStyle="normal" />  
        <View
            android:layout_width="1dp" 
            android:layout_height="fill_parent"
            android:background="@color/black"
            android:layout_marginLeft="3dp"
            android:layout_marginRight="3dp"
            />
        <TextView
            android:id="@+id/availibility"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="In Stock"
            android:textColor="#4A7023"
            android:textStyle="normal" 
            android:layout_marginLeft="3dp"
            />
    </LinearLayout>
</RelativeLayout>