2014-02-09 4 views
0

두 개의 TextView가 가운데에 분리되어 있습니다. 하나는 왼쪽에, 다른 하나는 오른쪽에 있습니다. 그러나 RelativeLayout 너비가 match_parent 또는 wrap_content로 설정되면 이상한 방식으로 중단됩니다. RelativeLayout이 수동 값 (예 : 200dp)으로 설정되면 작동합니다.match_parent 또는 wrap_content와 함께 사용하면 RelativeLayout이 이상하게 작동하지 않습니다.

두 레이아웃 모두 Eclipse에서 올바르게 미리보기하지만 전화 또는 에뮬레이터에서는 제대로 작동하지 않습니다. 여기

는 match_parent와 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="?android:attr/listPreferredItemHeight" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:id="@+id/linearLayout1" 
     android:layout_width="match_parent" 
     android:layout_height="2dp" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:orientation="horizontal" > 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/linearLayoutSeparator" 
     android:layout_width="1dp" 
     android:layout_height="1dp" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" 
     android:background="@color/transparent" 
     android:orientation="vertical" > 
    </LinearLayout> 

    <TextView 
     android:id="@+id/textViewPrompt" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_alignRight="@+id/linearLayoutSeparator" 
     android:ellipsize="end" 
     android:maxLines="2" 
     android:paddingRight="5dp" 
     android:text="Prompt" 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     android:textColor="@color/default_text" 
     android:textSize="16sp" /> 

    <TextView 
     android:id="@+id/textViewAnswer" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/linearLayoutSeparator" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:ellipsize="end" 
     android:maxLines="2" 
     android:paddingLeft="5dp" 
     android:text="Answer" 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     android:textColor="@color/default_text" 
     android:textSize="16sp" /> 

</RelativeLayout> 

및 여기 결과 : Broken Layout

그리고 여기서 생성되는 (이 경우, 200dp) 수동 너비 값을 갖는 코드 적절한 결과 : Working Layout

0 : 여기

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="200dp" 
    android:layout_height="?android:attr/listPreferredItemHeight" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:id="@+id/linearLayout1" 
     android:layout_width="match_parent" 
     android:layout_height="2dp" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:orientation="horizontal" > 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/linearLayoutSeparator" 
     android:layout_width="1dp" 
     android:layout_height="1dp" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" 
     android:background="@color/transparent" 
     android:orientation="vertical" > 
    </LinearLayout> 

    <TextView 
     android:id="@+id/textViewPrompt" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_alignRight="@+id/linearLayoutSeparator" 
     android:ellipsize="end" 
     android:maxLines="2" 
     android:paddingRight="5dp" 
     android:text="Prompt" 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     android:textColor="@color/default_text" 
     android:textSize="16sp" /> 

    <TextView 
     android:id="@+id/textViewAnswer" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/linearLayoutSeparator" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:ellipsize="end" 
     android:maxLines="2" 
     android:paddingLeft="5dp" 
     android:text="Answer" 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     android:textColor="@color/default_text" 
     android:textSize="16sp" /> 

</RelativeLayout> 

이 결과

android:layout_width="200dp" 

사람이 문제가 될 수있는 것을 알고 있나요

:

두 레이아웃의 유일한 차이점은 라인? 도와 주셔서 미리 감사드립니다.

답변

1
// try this way 
<?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="wrap_content" 
    android:gravity="center" 
    android:padding="5dp" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
     <TextView 
      android:id="@+id/textViewPrompt" 
      android:layout_width="0dp" 
      android:layout_weight="1" 
      android:layout_height="wrap_content" 
      android:ellipsize="end" 
      android:maxLines="2" 
      android:paddingRight="5dp" 
      android:gravity="left" 
      android:text="Prompt" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:textSize="16sp" /> 

     <TextView 
      android:id="@+id/textViewAnswer" 
      android:layout_width="0dp" 
      android:layout_weight="1" 
      android:layout_height="wrap_content" 
      android:ellipsize="end" 
      android:maxLines="2" 
      android:paddingLeft="5dp" 
      android:text="Answer" 
      android:gravity="right" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:textSize="16sp" /> 
     </LinearLayout> 

    <LinearLayout 
     android:id="@+id/linearLayoutSeparator" 
     android:layout_width="1dp" 
     android:layout_height="1dp" 
     android:layout_marginTop="5dp" 
     android:orientation="vertical" > 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/linearLayout1" 
     android:layout_width="match_parent" 
     android:layout_height="2dp" 
     android:layout_marginTop="5dp" 
     android:orientation="horizontal" > 
    </LinearLayout> 

</LinearLayout> 
+0

@ cheese1756, 항상 WC !!! –