2012-07-05 75 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);