1

원래 버튼 레이아웃이 정적으로 구성된 응용 프로그램에서 작업하고 있습니다. 이제는 더 넓은 화면 (SIII, Note, Tablets 등)에서 테이블 레이아웃이 모두 동일한 크기로 남아 있고 동적으로 "튀어 나오지"않습니다. 이것을 달성하기 위해이 코드를 어떻게 조정할 수 있습니까?은 화면 너비에 따라 동적으로 펼쳐지는 버튼이 필요합니다.

<TableLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_margin="0dp" 
    android:gravity="center_vertical" 
    android:orientation="vertical" > 

    <TableRow 
     android:id="@+id/tableRow1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:gravity="center_horizontal" > 

     <RelativeLayout 
      android:id="@+id/stoolRelative" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_margin="15px" 
      android:gravity="center_horizontal" > 

      <ImageButton 
       android:id="@+id/stoolmenu" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:background="#00000000" 
       android:src="@drawable/menustool" > 
      </ImageButton> 

      <TextView 
       android:id="@+id/stoolText" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/stoolmenu" 
       android:layout_centerHorizontal="true" 
       android:layout_marginTop="5px" 
       android:gravity="center_horizontal" 
       android:text="@string/stoolmenu" 
       android:textSize="11dp" 
       android:textStyle="bold" > 

      </TextView> 
     </RelativeLayout> 

     <RelativeLayout 
      android:id="@+id/foodRelative" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_margin="15px" 
      android:gravity="center_horizontal" > 

      <ImageButton 
       android:id="@+id/foodmenu" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:background="#00000000" 
       android:src="@drawable/menufood" > 
      </ImageButton> 

      <TextView 
       android:id="@+id/foodText" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/foodmenu" 
       android:layout_centerHorizontal="true" 
       android:layout_marginTop="5px" 
       android:gravity="center_horizontal" 
       android:text="@string/foodmenu" 
       android:textSize="11dp" 
       android:textStyle="bold" > 

      </TextView> 
     </RelativeLayout> 

     <RelativeLayout 
      android:id="@+id/PainRelative" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_margin="15px" > 

      <ImageButton 
       android:id="@+id/painmenu" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:background="#00000000" 
       android:src="@drawable/menupain" > 
      </ImageButton> 

      <TextView 
       android:id="@+id/painText" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/painmenu" 
       android:layout_centerHorizontal="true" 
       android:layout_marginTop="5px" 
       android:gravity="center_horizontal" 
       android:text="@string/painmenu" 
       android:textSize="11dp" 
       android:textStyle="bold" > 

      </TextView> 
     </RelativeLayout> 
    </TableRow> 

    <TableRow 
     android:id="@+id/tableRow2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="15px" 
     android:gravity="center_horizontal" > 

     <RelativeLayout 
      android:id="@+id/moodRelative" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_margin="15px" > 

      <ImageButton 
       android:id="@+id/moodmenu" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:background="#00000000" 
       android:src="@drawable/menumood" > 
      </ImageButton> 

      <TextView 
       android:id="@+id/moodText" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/moodmenu" 
       android:layout_centerHorizontal="true" 
       android:layout_marginTop="5px" 
       android:gravity="center_horizontal" 
       android:text="@string/moodmenu" 
       android:textSize="11dp" 
       android:textStyle="bold" > 

      </TextView> 
     </RelativeLayout> 

     <RelativeLayout 
      android:id="@+id/medsTakeRelative" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_margin="15px" 
      android:gravity="center_horizontal" > 

      <ImageButton 
       android:id="@+id/medstakemenu" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:background="#00000000" 
       android:src="@drawable/menumeds" > 
      </ImageButton> 

      <TextView 
       android:id="@+id/medsTakeText" 
       android:layout_width="70px" 
       android:layout_height="wrap_content" 
       android:layout_alignLeft="@+id/medstakemenu" 
       android:layout_alignRight="@+id/medstakemenu" 
       android:layout_below="@+id/medstakemenu" 
       android:layout_centerHorizontal="true" 
       android:layout_marginTop="5px" 
       android:gravity="center_horizontal" 
       android:lines="2" 
       android:maxLines="2" 
       android:minLines="2" 
       android:singleLine="false" 
       android:text="@string/medstakenmenu" 
       android:textSize="11dp" 
       android:textStyle="bold" > 

      </TextView> 
     </RelativeLayout> 

     <RelativeLayout 
      android:id="@+id/otherIssuesRelative" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_margin="15px" > 

      <ImageButton 
       android:id="@+id/othermenu" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:background="#00000000" 
       android:src="@drawable/menuother" > 
      </ImageButton> 

      <TextView 
       android:id="@+id/otherIssuesText" 
       android:layout_width="100px" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/othermenu" 
       android:layout_centerHorizontal="true" 
       android:layout_marginTop="5px" 
       android:gravity="center_horizontal" 
       android:lines="2" 
       android:maxLines="2" 
       android:minLines="2" 
       android:singleLine="false" 
       android:text="@string/otherissuesmenu" 
       android:textSize="11dp" 
       android:textStyle="bold" > 

      </TextView> 
     </RelativeLayout> 
    </TableRow> 

    <TableRow 
     android:id="@+id/tableRow3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="15px" 
     android:gravity="center_horizontal" > 

     <RelativeLayout 
      android:id="@+id/historyRelative" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_margin="15px" > 

      <ImageButton 
       android:id="@+id/historymenu" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:background="#00000000" 
       android:src="@drawable/menuhistory" > 
      </ImageButton> 

      <TextView 
       android:id="@+id/historyText" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/historymenu" 
       android:layout_centerHorizontal="true" 
       android:gravity="center_horizontal" 
       android:layout_marginTop="5px" 
       android:text="@string/historymenu" 
       android:textSize="11dp" 
       android:textStyle="bold" > 

      </TextView> 
     </RelativeLayout> 

     <RelativeLayout 
      android:id="@+id/historyRelative" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_margin="15px" 
      android:gravity="center_horizontal" > 

      <ImageButton 
       android:id="@+id/academymenu" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:background="#00000000" 
       android:src="@drawable/menuacademy" > 
      </ImageButton> 

      <TextView 
       android:id="@+id/academyText" 
       android:layout_width="120px" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/academymenu" 
       android:layout_centerHorizontal="true" 
       android:layout_marginTop="5px" 
       android:gravity="center_horizontal" 
       android:lines="2" 
       android:maxLines="2" 
       android:minLines="2" 
       android:singleLine="false" 
       android:text="@string/ibdacademymenu" 
       android:textSize="11dp" 
       android:textStyle="bold" > 

      </TextView> 
     </RelativeLayout> 

     <RelativeLayout 
      android:id="@+id/myPassPortRelative" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_margin="15px" 
      android:gravity="center_horizontal" > 

      <ImageButton 
       android:id="@+id/mypassportmenu" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:background="#00000000" 
       android:src="@drawable/menupassport" > 
      </ImageButton> 

      <TextView 
       android:id="@+id/myPassportTextUp" 
       android:layout_width="80dp" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/mypassportmenu" 
       android:layout_centerHorizontal="true" 
       android:layout_marginTop="5px" 
       android:gravity="center_horizontal" 
       android:lines="2" 
       android:maxLines="2" 
       android:minLines="2" 
       android:singleLine="false" 
       android:text="@string/myibdpassportmenu" 
       android:textSize="11dp" 
       android:textStyle="bold" > 

      </TextView> 
      <!-- 
     <TextView 
     android:layout_below="@+id/myPassportTextUp" 
     android:text="Passport" android:layout_height="wrap_content" 
     android:layout_width="wrap_content" android:id="@+id/myPassportTextDown" 
     ></TextView> 
      --> 
     </RelativeLayout> 
    </TableRow> 
</TableLayout> 

EDIT : 여기 화면이 넓어 질수록, 테이블이 정확한 크기 및 양쪽 증가에 한계 유지 현재 배치

http://imgur.com/fHEFn1H

의 스크린 샷이다. 아이디어?

+0

당신이 어떤 그림이나 내 평판이 나는 URL을 포함 –

+0

처럼 보이게하는 방법과 유사과 같은 방법 스크린 샷을 보여 주면 그것은 쉬울 것이다 이미지를 추가 할만큼 충분히 높지 않습니다. – arcadeRob

+0

그리고 아이콘이 더 커지기를 원하십니까? –

답변

1

가/각 RelativeLayout를 들어

android:layout_weight="1" 
android:gravity="center_vertical" 

를 추가 : 우리는 우리의 TextViews을 (동일 화면 폭에 걸쳐 그들을 확산) 위치해야하는 경우에 따라서, 우리는 다음을 수행합니다/변경, 추가

android:layout_weight="1" 
+0

굉장. 도와 줘서 고마워. 약간의 편집 작업을해야하지만 이것이 올바른 방향으로 나를 밀어 붙였다. – arcadeRob

0

레이아웃 요소의 위치를 ​​동적으로 (프로그래밍 방식으로) 조정해야합니다.

myLinearLayout.getViewTreeObserver().addOnGlobalLayoutListener(ViewTreeObserver.OnGlobalLayoutListener) 

이 리스너 내부, 우리는 폭과 레이아웃 요소의 높이에 액세스 할 수 있습니다 : 우리는 LinearLayout 내부에 2 TextViews이있는 경우 예를 들어, 우리는 OnGlobalLayoutListenerLinearLayout받는 추가 할 수 있습니다. 각 TableRow 변화에 대한

int width = myLinearLayout.getWidth(); 
int lMarginTextView = (width - myTextView1.getWidth() - myTextView2.getWidth())/3; 
LinearLayout.LayoutParams paramsTV = new LinearLayout.LayoutParams(  
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
paramsTV.leftMargin = lMarginTextView; 

myTextView1.setLayoutParams(paramsTV); 
myTextView2.setLayoutParams(paramsTV);