2012-02-28 6 views
0

© 선형 레이아웃에 문제가 있습니다. 나는 무언가가 이상하다고 생각합니다. 같은 레이아웃이지만 뒤로 버튼은 관련 아이콘을 움직입니다. 왼쪽에 뒤로 버튼을 맞추고 싶습니다. 그리고 btn_header_what_search_user 버튼은 오른쪽 사이트에 있습니다. 그러나 그들은 관련 아이콘 (가운데 아이콘)을 움직입니다. 왜요? 그리고 어떻게하면 왼쪽에있는 버튼으로 돌아갈 수 있을까요?직선형 중력 문제가 있습니까?

enter image description here

내 코드 :`

<LinearLayout android:layout_height="44dip" 
       android:layout_width="320dip" 
       android:background="@drawable/header_320_44dip"> 
    <ImageView 
      android:layout_width="121dip" 
      android:layout_height="32dip" 
      android:layout_gravity="center" 
      android:layout_marginLeft="90dip" 
      android:background="@drawable/icon"> 

    </ImageView> 

    <ImageView 
      android:layout_width="52dip" 
      android:layout_height="32dip" 
      android:layout_gravity="left" 
      android:background="@drawable/btn_back_52x32"> 

    </ImageView> 


    <ImageButton 
      android:layout_height="34dip" 
      android:layout_width="64dip" 
      android:id="@+id/btn_header_what_search_user" 
      android:layout_marginLeft="0dip" 
      android:background="@drawable/btn_nedit_nontext_64x34"> 
    </ImageButton> 
</LinearLayout> 
는 주 방향 (즉, 수평 LinearLayout을하지 않는입니다 함께 LinearLayout은 중력과 잘 작동하지 않습니다

`

답변

2

left, right 또는 center_horizontal 및 vertical top, bottom 또는 center_vertical)을 지원합니다.
대신 RelativeLayout을 시도하고 올바른 결과를 얻으려면 layout_alignParentLeft/layout_alignParentRight 속성 (또는 다른 사용 가능한 속성)을 사용할 수 있습니다.

+0

그래서 선형 레이아웃 언제든지 내가 사용할 수없는 정렬을 사용합니까? 선형 레이아웃에서 어떻게 정렬 할 수 있습니까? 마지막 질문은 항목 추가 전에 왜 관련이 있습니까? 정상입니까? 나는 관련된 0,0 점 이동을 생각하고 있었습니까? – DuyguK

+0

LinearLayout의 항목이 왼쪽에서 오른쪽으로 그리고 위에서 아래로 차례로 추가됩니다. 그게 왜 레이아웃에 항목의 배열이 방해 받았는지 그 이유. – Maneesh

+0

다른'align' 속성은'RelativeLayout'에 고유합니다. 즉,'LinearLayout'에서 사용할 수 없습니다. 'RelativeLayout'은 또한 "toLeftOf", "toRightOf", "above"와 "below"에 대한 속성을 가지고 있습니다.이 속성은 서로 뷰를 배치 할 때 사용할 수 있습니다. LinearLayout에서 추가 된 각보기는 xml에 나타나는 순서대로 표시됩니다. 즉, 아이콘이 뒤로 버튼 앞에 표시되어 앞에 표시됩니다. – Jave

3

당신은 레이아웃 가중치의 사용 수 있습니다 상대 레이아웃을

<RelativeLayout android:layout_height="44dip" 
       android:layout_width="320dip" 
       android:background="@drawable/header_320_44dip"> 
    <ImageView 
      android:layout_width="121dip" 
      android:layout_height="32dip" 
      android:layout_centerInParent="true" 
      android:layout_marginLeft="90dip" 
      android:background="@drawable/icon"> 

    </ImageView> 

    <ImageView 
      android:layout_width="52dip" 
      android:layout_height="32dip" 
      android:layout_alignParentLeft="true" 
      android:background="@drawable/btn_back_52x32"> 

    </ImageView> 


    <ImageButton 
      android:layout_height="34dip" 
      android:layout_width="64dip" 
      android:id="@+id/btn_header_what_search_user" 
      android:layout_marginLeft="0dip" 
android:layout_alignParentright="true" 
      android:background="@drawable/btn_nedit_nontext_64x34"> 
    </ImageButton> 
</RelativeLayout> 
0

또 다른 방법을 사용해야합니다. 총 가중치 3을 설정 한 다음 각 이미지보기에 대해 가중치 1을 설정하십시오. 이렇게하면 레이아웃이 세 부분으로 나뉘며 각 부분의 중력을 조정할 수 있어야합니다. 뭔가 그런 :

<LinearLayout 
    ... 
    android:weightSum="3" > 

    <ImageView 
     ... 
     android:layout_width="0dp" 
     android:layout_weight="1" /> 
+0

체중 조절은 무엇입니까? 내가 스크린의 퍼센트로 이것을 원한다면 나는 생각하고 있었다? – DuyguK

+0

가중치를 사용하면 사용중인 요인에 따라 레이아웃을 동적으로 분리 할 수 ​​있습니다. 다른 요인을 사용하는 또 다른 예입니다. weightSum = "10", imageView가 5, 두 textview가 각각 2입니다. layout_width를 항상 0dp로 설정하는 것이 좋습니다. 그렇지 않으면 작동하지 않습니다. – ramdroid