2014-09-28 70 views
0

我有一個LinearLayout,它具有多個文本字段和LinearLayout右邊的ImageView。但是,圖像的位置永遠不會被固定,並且取決於TextView字段的內容。我該如何解決這個問題?我試圖操縱android:layout_gravity但這並沒有給我一個解決方案。無論TextView的內容如何,​​我都希望自己的形象停留在正確的位置。這是我的佈局文件。任何指針或解決方案將不勝感激。Android - 如何修復圖像的位置

<?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="match_parent" 
android:orientation="horizontal" 
> 

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="144dp" 
    android:orientation="vertical" 
    android:layout_gravity="left" 

> 

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

     <TextView 
      android:id="@+id/name_field" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/name" /> 

     <TextView 
      android:id="@+id/name" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 

    </LinearLayout> 

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

     <TextView 
      android:id="@+id/date_of_birth_field" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/date_of_birth" /> 

     <TextView 
      android:id="@+id/date_of_birth" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 

    </LinearLayout> 

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

     <TextView 
      android:id="@+id/place_of_birth_field" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/place_of_birth" /> 

     <TextView 
      android:id="@+id/place_of_birth" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 

    </LinearLayout> 

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

     <TextView 
      android:id="@+id/height_field" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/height" /> 

     <TextView 
      android:id="@+id/height" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 

    </LinearLayout> 

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

     <TextView 
      android:id="@+id/blood_type_field" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/blood_type" /> 

     <TextView 
      android:id="@+id/blood_type" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 

    </LinearLayout> 

</LinearLayout> 

<ImageView 
    android:id="@+id/member_image" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="right" 


/> 

</LinearLayout> 
+0

嘗試用FrameLayout替換最外面的LinearLayout。解釋這是不是所需的效果。 – 2014-09-28 22:41:20

回答

1

在最外層佈局中使用RelativeLayout。您可以將圖像設置爲垂直顯示在右側和中央。

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

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="144dp" 
      android:orientation="vertical" 

      > 

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

       <TextView 
        android:id="@+id/name_field" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/name" /> 

       <TextView 
        android:id="@+id/name" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" /> 

      </LinearLayout> 

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

       <TextView 
        android:id="@+id/date_of_birth_field" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/date_of_birth" /> 

       <TextView 
        android:id="@+id/date_of_birth" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" /> 

      </LinearLayout> 

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

       <TextView 
        android:id="@+id/place_of_birth_field" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/place_of_birth" /> 

       <TextView 
        android:id="@+id/place_of_birth" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" /> 

      </LinearLayout> 

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

       <TextView 
        android:id="@+id/height_field" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/height" /> 

       <TextView 
        android:id="@+id/height" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" /> 

      </LinearLayout> 

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

       <TextView 
        android:id="@+id/blood_type_field" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/blood_type" /> 

       <TextView 
        android:id="@+id/blood_type" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" /> 

      </LinearLayout> 

     </LinearLayout> 

     <ImageView 
      android:id="@+id/member_image" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" 
      android:layout_centerVertical="true" 

      /> 

</RelativeLayout> 
+0

解決!非常感謝。 – user1841702 2014-09-28 22:52:13