2012-07-05 29 views
0

我想在相当简单的布局中添加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> 

回答

0

也许这可以帮到你。您可以使用每个TextViewbackground colortop padding,以使其成为您想要的方式。希望这可以帮助。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:baselineAligned="false" 
    android:id="@+id/RelativeLayout" 
    android:background="#ffffffff" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <LinearLayout 
     android:id="@+id/background" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:orientation="vertical" > 

    <TextView 
     android:id="@+id/ProductDetailsTitle" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="#ffffffff" 
     android:gravity="center" 
     android:paddingTop="50dp" 
     android:text="Hello, I am tired" /> 

    <TextView 
     android:id="@+id/ProductDetailsTitle2" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="#ffffffff" 
     android:gravity="center" 
     android:paddingTop="50dp" 
     android:text="Hello" /> 

    <TextView 
     android:id="@+id/ProductDetailsTitle3" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="#ffffffff" 
     android:gravity="center" 
     android:paddingTop="50dp" 
     android:text="Hello" /> 

    <TextView 
     android:id="@+id/ProductDetailsTitle4" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="#ffffffff" 
     android:gravity="center" 
     android:paddingTop="50dp" 
     android:text="Hello" /> 
    </LinearLayout> 


    <LinearLayout 
     android:id="@+id/background2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:orientation="vertical" > 

    <TextView 
     android:id="@+id/ProductDetailsTitle5" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"    
     android:background="#ffffffff" 
     android:paddingTop="50dp" 
     android:gravity="center" 
     android:text="Hello" /> 

    <TextView 
     android:id="@+id/ProductDetailsTitle6" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="#ffffffff" 
     android:gravity="center" 
     android:paddingTop="50dp" 
     android:text="Hello" /> 

    <TextView 
     android:id="@+id/ProductDetailsTitle7" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="#ffffffff" 
     android:gravity="center" 
     android:paddingTop="50dp" 
     android:text="Hello" /> 

    <TextView 
     android:id="@+id/ProductDetailsTitle8" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="#ffffffff" 
     android:gravity="center" 
     android:paddingTop="50dp" 
     android:text="Hello, something" /> 

    </LinearLayout> 
</LinearLayout> 

enter image description here

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);