“线性布局”中的多个文本视图无法正确对齐

时间:2012-07-05 01:47:15

标签: android layout textview alignment

我想在我相当简单的布局中添加8个文本视图。 我希望每行有两个文本视图和四个这样的行。 我的挑战是在这个布局中排列第2,第4,第6和第8个文本视图。 第1,第3,第5和第7文本视图上的文本具有不同的长度。

我无法将每行中的seocnd文本视图排成一行以进行垂直对齐。

基本上,无论该行中第一个文本视图的长度是多少,这些文本视图都需要从垂直对齐的同一行开始:

有人可以帮忙吗?

这是我的XML。

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/productDetailsLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/white"
android:orientation="vertical" >

<include
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    layout="@layout/logo_logout" />


<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="10dp" >

    <TextView
        android:id="@+id/ProductDetailsTitle"
        android:layout_width="wrap_content"
        android:layout_height="43dp"
        android:layout_marginTop="10dp"
        android:background="@color/Navy"
        android:gravity="center"
        android:text="@string/ProductDetailsTitle"
        android:textColor="@color/white"
        android:textSize="20dp"
        android:textStyle="bold" />

    <Button
        android:id="@+id/ProductDetailsEditButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_weight="0.36"
        android:text="Edit"
        android:textSize="20dp" />
</LinearLayout>

<include
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="20dp"
    layout="@layout/product_details_mainpage_part1" />

<include
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="20dp"
    layout="@layout/product_details_mainpage_part2" />

<include
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="20dp"
    layout="@layout/product_details_mainpage_part3" />

<include
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="20dp"
    layout="@layout/product_details_mainpage_part44" />

</LinearLayout>

2 个答案:

答案 0 :(得分:0)

也许这会有所帮助。您可以使用每个background color的{​​{1}}和top padding进行游戏,以便按照您希望的方式进行游戏。希望这可以帮助。

TextView

enter image description here

答案 1 :(得分:0)

我知道这是一个老帖子,但我也一直在努力。 我发现最有效的是给视图充气,然后设置新的线性布局参数。这将导致两行和单行文本视图垂直对齐。

    LayoutInflater inflater = (LayoutInflater) this.getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    TextView textView = (TextView) inflater.inflate(R.layout.workout_summary_textview, null);
    inflater = null;

    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(width, height);
    params.gravity = Gravity.CENTER;

    textView.setLayoutParams(params);