2017-04-23 2 views
0

를 만들려면 :나는 다음의 레이아웃이 =있는 LinearLayout의 요소는 무게 = 1 폭 가능한 모든 공간을 채우기하지 0

<LinearLayout 
      android:id="@+id/work_item_layout" 
      android:orientation="horizontal" 
      android:layout_width="match_parent" 
      android:gravity="left" 
      android:background="@android:drawable/list_selector_background" 
      android:layout_height="wrap_content"> 
     <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textSize="6sp" 
       android:id="@+id/work_item_update"/> 
     <TextView 
       android:layout_width="0dp" 
       android:layout_weight="1" 
       android:layout_height="wrap_content" 
       android:textSize="16sp" 
       android:maxLines="2" 
       android:text="LALALALLALLALALALALALALLA...." 
       android:id="@+id/work_item_title"> 
     <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:maxLines="1" 
       android:textSize="13sp" 
       android:id="@+id/work_item_rate_and_size"/> 

    </LinearLayout> 

문제는 중앙 텍스트 뷰는 사용 가능한 모든 공간을 채우기하지만 난 그것이 가능한 최소한의 공간이되고 싶어요를 . 중앙 텍스트 뷰의 폭을 "warp_content"로하면 모든 공간을 채울 수있을 정도로 큰 중앙 공간이 있으면 마지막 공간이 지워집니다. 중앙 요소 너비를 warp_content와 같게하려면 어떻게해야합니까? 중앙 텍스트가 1 줄 이상이면 마지막 요소를 지워서는 안됩니다. (마지막 TextView 텍스트가 중앙 TextView 텍스트 바로 옆에 있어야합니다.)

답변

0

가중치 그런 식으로 공간을 차지할 부분을 지정할 수 있습니다.

0

정확하게 가중치를 정확하게 사용한다고 생각합니다. 상단 및 하단에 android:weight="1"을 할당하고 TextView을 지정하고 중간에 대해 'wrap_content'만 지정하십시오.

또는 각각의 외부보기에 큰 가중치 (4 또는 5)를 지정하고 내부보기에 대해 더 작은 가중치 (1)를 지정할 수 있습니다.

무게가 우선 적용됩니다. 보기에 가중치를 지정하면 LinearLayout은 다른 크기 지정보다 우선하여보기의 크기를 조정합니다. 무게와 다른 크기를 모두 지정하면 LinearLayout 크기 계산이 너무 비쌉니다. 따라서 IDE에서 명시 적으로 크기를 "0"으로 설정하라는 권장 사항이 표시됩니다 (무게를 지정하는 경우).

0이 아닌 가중치 지정 일 수 있습니다. 여유 공간이 있으면 가중치가 우선 순위를 갖지만 크기 계산 알고리즘이 LinearLayout이면 지정된 크기보다보기가 작아지지 않습니다. 즉, 화면의 1/3 또는 12 픽셀 중에서 더 큰 쪽을이보기에 표시 할 수 있습니다.