2012-10-17 4 views
2

수직 선형 레이아웃에서 무게에 대해 혼란 스럽습니다. 나는 수평 선형 레이아웃에서 잘 무게를 사용할 수 있지만 수직 선형 레이아웃에서 사용하는 방법. 나는 텍스트 레이아웃과 텍스트 필드가있는 라이너 레이아웃 (수직)을 포함하는 상대 레이아웃을 가지고 있습니다. 다음 배열을 원합니다. 수직 선형 레이아웃의 무게

레드 라인 = 상대 레이아웃, 그린 라인 = 선형 레이아웃 (수직), 파란색 = 텍스트 뷰, 노란색 = texfields

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center" > 
    <LinearLayout 
     android:id="@+id/linearLayout1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" > 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="Large Text" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <EditText 
      android:id="@+id/editText2" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:ems="10" 
      android:inputType="numberDecimal" /> 
    </LinearLayout> 
</RelativeLayout> 
+1

개발 한 코드를 추가하려고 시도했습니다. –

+1

귀하의 수직 선형 레이아웃 match_parent로 높이를 설정하고 각각의 text_view의 무게를 1로 설정 – Syn3sthete

+0

나는 1 개의 textview와 1 개의 texdfields를 사용하여 수평 선형 레이아웃에서 잘 작동하지만 더 많은 뷰를 사용하면 어떻게해야합니까? – Tanvir

답변

1
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center" > 
    <LinearLayout 
     android:id="@+id/linearLayout1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:layout_margin="10dp"> 
    <LinearLayout 
     android:id="@+id/linearLayout1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" > 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="Large Text" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <EditText 
      android:id="@+id/editText1" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:ems="10" 
      android:inputType="numberDecimal" /> 

    </LinearLayout> 
    <LinearLayout 

     android:id="@+id/linearLayout2" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" > 

     <TextView 
      android:id="@+id/textView2" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="Large Text" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <EditText 
      android:id="@+id/editText2" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:ems="10" 
      android:inputType="numberDecimal" /> 

    </LinearLayout> 
    <LinearLayout 

     android:id="@+id/linearLayout3" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" > 

     <TextView 
      android:id="@+id/textView3" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="Large Text" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <EditText 
      android:id="@+id/editText3" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:ems="10" 
      android:inputType="numberDecimal" /> 


    </LinearLayout> 
    <LinearLayout 

     android:id="@+id/linearLayout4" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" > 

     <TextView 
      android:id="@+id/textView4" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="Large Text" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <EditText 
      android:id="@+id/editText4" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:ems="10" 
      android:inputType="numberDecimal" /> 


    </LinearLayout> 
    </LinearLayout> 
</RelativeLayout> 
+1

Thanx Mukesh bhai, 이것은 내가 내가 짐작했던 것입니다. 개발자 가이드가 왜 "무게"가 수평 선형 레이아웃에서만 작동하는지 명확하게 설명하지 않습니다. 뭐든간에 당신은 수평 선형 레이아웃에 있어야 체중과 함께 넣고 싶습니다. – Tanvir

+1

무게는 수직 및 수평 레이아웃 모두에서 작동합니다. 나는 그것을 모두 성공적으로 사용했습니다. – Yoda

2

당신이 layout_weigth 매개 변수를 사용하는 경우, 당신은 관련 매개 변수를 가져야한다

그래서 match_parent의 선형 배치의 방향 :

 android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
+0

일치하는 부모와 채우기 부모 사이의 차이점은 무엇입니까? 위의 내용을보기 또는 레이아웃에 사용해야합니까? bcos 나는 체중을 사용하는 동안 뷰 shud의 너비가 0dp로 설정된다는 것을 읽었습니다. – Tanvir

+0

match_parent와 fill_parent는 같습니다. 예, textview의 –

+0

에서 match_parent를 시도해보십시오. 폼과 같은 2x3 테이블에서 가중치 (1 : 2보기)를 사용하여 선형 선형 레이아웃으로 어레인지를 구현하는 방법은 무엇입니까? – Tanvir

1

- 우선 바로의 배열은 Relative layout이 아니며 없이는 LinearLayout을 사용하면됩니다.

- 당신의 Relative layout에서 아이의 레이아웃을 갖고 싶어 두 번째 경우 다음의 더 나은 Relative layoutTableRow을 사용하고, 유 보여준 것처럼, 거기에 요소를 배치합니다.

+0

입니다. 제가 할 수 있음을 알고 있지만, 제가 이것을 할 수 있는지 알고 싶습니다. 다른 방법은 배울 것입니다 ... 어떻게 양식을 2x3 테이블에 무게 (1 : 2보기 2)의 도움으로 수직 선형 레이아웃 배열을 구현합니까 – Tanvir

+0

지금 나는 가로 라이너 레이아웃에서만 무게를 사용할 수 있다고 생각 , NOT in vertical linear layout. – Tanvir

+0

이 시나리오에서는'TableLayout'이 내가 권장하는 레이아웃 유형이 될 것입니다. – Yoda

0

나는 이것에 대한 TableLayout를 사용하는 것이 좋습니다 것입니다. 이 권리가 있다면 가로로 가중치를 적용하여 LinearLayout에 일정한 기둥을 넣으려고합니다. 그것이 맞다고 가정하면, 당신은 결코 그렇게하지 않을 것입니다.

LinearLayout은 모든 요소를 ​​수평 또는 수직으로 배열합니다. 그것은 두 가지 방법으로는 할 수 없습니다. 따라서 목표를 달성하려면 별도의 행 컨테이너가 필요합니다.

TableLayout은 고유 한 행 컨테이너로 설계되었을뿐만 아니라 관리하기 위해 가중치를 적용하지 않고도 이러한 종류의 레이아웃에 대한 열 지원 기능을 내장하고 있습니다.

0

제 경우에는, 수직 무게 문제가있는 alittle 게임 후에, 나는 안드로이드가 ViewGroup의 내용을 감싸는 것을 안다는 것을 이해했고, 내용의 크기보다 더 큰 무게로 포장을 설정하더라도 다른 뷰에 추가 공간을 제공합니다.

해결책은 필요에 따라 위 또는 아래 여백을 추가하는 것입니다.

관련 문제