2013-07-16 2 views
2

나는 이와 비슷한 것을 만들려고합니다. Android Layout(User Interface) 만 무게가 4 인 첫 번째 열을 두 번째 가중치 (두 행이있는 열)와 마지막 열 1의 무게로 (그리고 또한 3 개의 행과 함께) ... 문제는 스스로를 망쳐 놓는다. (나는 복사하여 붙여 넣고 내 필요에 따라 모든 것을 바꿨지 만 계속 엉망이된다. [코드]가중치를 사용하여 선형 레이아웃 만들기

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@color/background_color" 
    android:orientation="vertical" 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="4" 
     android:gravity="center_horizontal|center_vertical" 
     android:orientation="horizontal" > 

     <TextView 
      android:id="@+id/textDishes" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="20dp" 
      android:text="@string/dishes" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <ImageView 
      android:id="@+id/imageDishes" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/ic_launcher" /> 
    </LinearLayout> 

    <View 
     android:layout_width="fill_parent" 
     android:layout_height="@dimen/seperator_size" 
     android:background="@color/seperator" /> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="2" 
     android:measureWithLargestChild="true" 
     android:orientation="horizontal" 
     android:weightSum="2" > 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:gravity="center_horizontal" 
      android:orientation="vertical" > 

      <TextView 
       android:id="@+id/textfood" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="@string/food" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <ImageView 
       android:id="@+id/imagefood" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:src="@drawable/ic_launcher" /> 
     </LinearLayout> 

     <View 
      android:layout_width="fill_parent" 
      android:layout_height="@dimen/seperator_size" 
      android:background="@color/seperator" /> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:gravity="center_horizontal" 
      android:orientation="vertical" > 

      <TextView 
       android:id="@+id/textMalls" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="@string/malls" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <ImageView 
       android:id="@+id/imageMalls" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:src="@drawable/ic_launcher" /> 
     </LinearLayout> 
    </LinearLayout> 

    <View 
     android:layout_width="fill_parent" 
     android:layout_height="@dimen/seperator_size" 
     android:background="@color/seperator" /> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:weightSum="3" 
     android:orientation="horizontal" > 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:gravity="center_horizontal" 
      android:orientation="vertical" > 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="@string/app_name" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <ImageView 
       android:id="@+id/imageView1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:src="@drawable/ic_launcher" /> 
     </LinearLayout> 

     <View 
      android:layout_width="fill_parent" 
      android:layout_height="@dimen/seperator_size" 
      android:background="@color/seperator" /> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:gravity="center_horizontal" 
      android:orientation="vertical" > 

      <TextView 
       android:id="@+id/textView2" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="@string/coupons" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <ImageView 
       android:id="@+id/imageView2" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:src="@drawable/ic_launcher" /> 
     </LinearLayout> 

     <View 
      android:layout_width="fill_parent" 
      android:layout_height="@dimen/seperator_size" 
      android:background="@color/seperator" /> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:gravity="center_horizontal" 
      android:orientation="vertical" > 

      <TextView 
       android:id="@+id/textView3" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="@string/markets" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <ImageView 
       android:id="@+id/imageView3" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:src="@drawable/ic_launcher" /> 
     </LinearLayout> 
    </LinearLayout> 

</LinearLayout> 
[/code] 

결과라고 -

enter image description here

결과가 같아야 - enter image description here 어떤 도움 ?? 사용할 때이 유일한 문제가 있지만, 경우

답변

2

편집 지금

수직 디바이더가 여전히 작동하지 않는, 그러나 희망은 당신이 올바른 방향으로 가고 얻을 수 있기 때문에 이것은 완전한 답변되지 않습니다 :

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="0dp" 
    android:layout_weight="4" 
    android:gravity="center" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/textDishes" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Dishes" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 

    <ImageView 
     android:id="@+id/imageDishes" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/ic_launcher" /> 
</LinearLayout> 

<View 
    android:layout_width="match_parent" 
    android:layout_height="5dp" 
    android:background="@color/red" /> 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="0dp" 
    android:layout_weight="2" 
    android:orientation="horizontal" > 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:orientation="vertical" > 

     <TextView 
      android:id="@+id/textfood" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Food" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <ImageView 
      android:id="@+id/imagefood" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/ic_launcher" /> 
    </LinearLayout> 

    <View 
     android:layout_width="5dp" 
     android:layout_height="fill_parent" 
     android:background="@color/red" 
     android:gravity="center" > 
    </View> 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:orientation="vertical" > 

     <TextView 
      android:id="@+id/textMalls" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Malls" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <ImageView 
      android:id="@+id/imageMalls" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/ic_launcher" /> 
    </LinearLayout> 
</LinearLayout> 

<View 
    android:layout_width="match_parent" 
    android:layout_height="5dp" 
    android:background="@color/red" /> 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1" 
    android:orientation="horizontal" > 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:orientation="vertical" > 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="App name" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <ImageView 
      android:id="@+id/imageView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/ic_launcher" /> 
    </LinearLayout> 

    <View 
     android:layout_width="5dp" 
     android:layout_height="fill_parent" 
     android:background="@color/red" 
     android:gravity="center" > 
    </View> 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:orientation="vertical" > 

     <TextView 
      android:id="@+id/textView2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Coupons" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <ImageView 
      android:id="@+id/imageView2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/ic_launcher" /> 
    </LinearLayout> 

    <View 
     android:layout_width="5dp" 
     android:layout_height="fill_parent" 
     android:background="@color/red" 
     android:gravity="center" > 
    </View> 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:orientation="vertical" > 

     <TextView 
      android:id="@+id/textView3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Markets" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <ImageView 
      android:id="@+id/imageView3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/ic_launcher" /> 
    </LinearLayout> 
</LinearLayout> 

enter image description here

+0

당신이 내 옆에 있다면 당신에게 키스 하겠어! ... tnx 많이 동생 .. !! – crazyPixel

0

는 잘 모르겠어요 weight 당신의 layout_width가 가로 방향은 "0dp"해야하며, layout_height는 수직 방향에 대해 "0dp"이어야합니다. 이 orientation있어 부모 LinearLayout에 속해 있기 때문에 그래서 예를 들어 첫 번째 아이가

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="0dp" 
    android:layout_weight="4" 
    android:gravity="center_horizontal|center_vertical" 
    android:orientation="horizontal" > 

을해야이 같은

뭔가 당신이 정말 가까이해야 vertical

업데이트입니다. 나는 당신이 당신이 포함 된 경우이 그냥 실수하면 잘 모르겠어요

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical"> 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="0dp" 
    android:layout_weight="4" 
    android:gravity="center_horizontal|center_vertical" 
    android:orientation="horizontal" > 

    <TextView 
     android:id="@+id/textDishes" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="20dp" 
     android:text="Dishes" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 

    <ImageView 
     android:id="@+id/imageDishes" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/ic_launcher" /> 
</LinearLayout> 

<View 
    android:layout_width="fill_parent" 
    android:layout_height="1dp" /> 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="0dp" 
    android:layout_weight="2" 
    android:measureWithLargestChild="true" 
    android:orientation="horizontal" 
    android:weightSum="2" > 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" 
     android:gravity="center_horizontal" 
     android:orientation="vertical" > 

     <TextView 
      android:id="@+id/textfood" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Food" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <ImageView 
      android:id="@+id/imagefood" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/ic_launcher" /> 
    </LinearLayout> 

    <View 
     android:layout_width="1dp" 
     android:layout_height="fill_parent" /> 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" 
     android:gravity="center_horizontal" 
     android:orientation="vertical" > 

     <TextView 
      android:id="@+id/textMalls" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Malls" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <ImageView 
      android:id="@+id/imageMalls" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/ic_launcher" /> 
    </LinearLayout> 
</LinearLayout> 

<View 
    android:layout_width="fill_parent" 
    android:layout_height="1dp" /> 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1" 
    android:weightSum="3" 
    android:orientation="horizontal" > 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" 
     android:gravity="center_horizontal" 
     android:orientation="vertical" > 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="App name" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <ImageView 
      android:id="@+id/imageView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/ic_launcher" /> 
    </LinearLayout> 

    <View 
     android:layout_width="fill_parent" 
     android:layout_height="1dp" /> 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" 
     android:gravity="center_horizontal" 
     android:orientation="vertical" > 

     <TextView 
      android:id="@+id/textView2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Coupons" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <ImageView 
      android:id="@+id/imageView2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/ic_launcher" /> 
    </LinearLayout> 

    <View 
     android:layout_width="fill_parent" 
     android:layout_height="1dp" /> 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" 
     android:gravity="center_horizontal" 
     android:orientation="horizontal" > 

     <TextView 
      android:id="@+id/textView3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Markets" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <ImageView 
      android:id="@+id/imageView3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/ic_launcher" /> 
    </LinearLayout> 
</LinearLayout> 

+0

Btw 감사합니다. 정말 감사드립니다. – crazyPixel

+0

어떻게 망쳐 버릴까요? 이 코드를 사용했을 때 기본적으로 분리 기호가없는 것처럼 보입니다. 프로젝트 클리닝을 시도 할 수도 있습니다 ... 프로젝트 -> 클리닝 – codeMagic

+0

수직 디바이더 중 하나를 추가하자마자 문제가 발생합니다. 이 예제에는 몇 가지 문제가 있습니다. 첫 번째 LL은 수직이 아니고 수평이되어야하며 분할 자 중 일부는 너비와 높이가 반대로되어 있어야합니다. – invertigo

2

사람들을 다시 넣어야 할 것이다, 그래서 내 편집기에서 작동하도록 자원을 꺼내했다 참고 귀하의 XML을 여기 있지만 부모 LinearLayout 다음에 ">"가 없습니다.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:background="@color/background_color" 
android:orientation="vertical" 

은 또한이 부모 레이아웃의 자녀 중 일부에 가중치를 사용하는

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:background="@color/background_color" 
android:orientation="vertical" > 

해야하지만, 당신은 부모의 LinearLayout에 weightSum 총을 지정하지 않았습니다. weightSum은 아이들 사이에서 분배 될 총 가중치이므로 해당 가중치가이 가중치와 합쳐져야 함을 기억하십시오. 또한 머리가 위로 올라 갔지만 중첩 된 가중치를 사용하면 성능에 좋지 않습니다.

아마도 가장 좋은 해결책은 LinearLayout을 사용하는 대신 다른 레이아웃 옵션을 탐색하는 것일 수 있습니다. 그래도이 방법으로 작동시킬 수 있습니다. 부모를 weightSum 7로 만들고 원하는대로 이것을 어린이들에게 배포하십시오.

이 사진 (선형 레이아웃을 사용하여) 당, 그것은 이런 식으로 뭔가를 보일 것입니다, 나는 생각 :
<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:weightSum="7" > 

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:weight="4" > 

// This one's child here - it has weight 1. 

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:weightSum="2" 
    android:weight="2" > 

// This one's children here - they both have weight 1. 

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:weightSum="3" 
    android:weight="1" > 

// This one's children here - they all have weight 1. 

뿐만 아니라은 LinearLayouts을 종료하는 것을 잊지 마십시오. 나는 그 코드를 테스트하지 않았기 때문에 가능한 오류를 검토하기를 원할 것이다.예를 작업

+1

weightSum은 필요하지 않다. – invertigo

+0

@invertigo - 네, 네 말이 맞아. 할당 된 가중치를 기반으로 가중치를 가정합니다. 나는 단지 몸무게를 던지는 데 익숙해 보입니다.하지만 전화는 잘 받았습니다! – KurayamiShikaku