2012-03-31 2 views
4

저는 Eclipse에서 프로그래밍 Android 앱을 처음 사용합니다.Android 레이아웃, 버튼 크기를 동일하게 설정하십시오.

그 말로는 인터넷상의 코드에서 벗어나서 레이아웃 용 XML 파일을 만들었습니다. 네 개의 버튼이 같은 크기 인을 가질 수 없으며, 진행률 표시 줄과 텍스트 아래에있는 다른 부분들과 함께 놀 때 바나나가 화면에 표시됩니다.

누군가 코드를 검토하고 무슨 징조인지 말해 줄 수 있습니까? 나는 이해하지 못한다. 다음은 그림입니다.

enter image description here

<?xml version="1.0" encoding="UTF-8"?> 
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/tableLayout1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <TableRow 
     android:id="@+id/tableRow1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center_horizontal" 
     android:paddingTop="10dp" > 

     <TextView 
      android:id="@+id/txt_currentDate" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_span="6" 
      android:gravity="center" 
      android:text="Current Date" 
      android:textSize="18dp" 
      android:textStyle="bold" 
      android:typeface="serif" > 
     </TextView> 
    </TableRow> 

    <TableRow 
     android:id="@+id/progressBarRow" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center_horizontal" 
     android:paddingTop="5dp" > 

     <ProgressBar 
      android:id="@+id/DailyCalorieProgress" 
      style="?android:attr/progressBarStyleHorizontal" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_span="3" 
      android:progress="80" /> 

    </TableRow> 

    <TableRow 
     android:id="@+id/tableRow3" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center_horizontal" 
     android:paddingTop="5dp" > 

     <TextView 
      android:id="@+id/textView1" 
      android:gravity="center" 
      android:text="Calorie Limit : " 
      android:textStyle="bold" > 
     </TextView> 

     <TextView 
      android:id="@+id/textView2" 
      android:gravity="center" 
      android:text="2000 " > 
     </TextView> 

     <TextView 
      android:id="@+id/textView3" 
      android:gravity="center" 
      android:text="Calories Left : " 
      android:textStyle="bold" > 
     </TextView> 

     <TextView 
      android:id="@+id/textView4" 
      android:gravity="center" 
      android:text="552" > 
     </TextView> 
    </TableRow> 

    <TextView 
     android:id="@+id/textView5" 
     android:gravity="center_horizontal" 
     android:text="____________________" > 
    </TextView> 

    <TableLayout 
     android:id="@+id/ButtonLayout" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:padding="5dp" 
     android:stretchColumns="0,1" > 

     <TableRow 
      android:id="@+id/buttonRow1" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_gravity="center" 
      android:orientation="horizontal" 
      android:paddingTop="10dp" > 

     <Button 
      android:id="@+id/btn_addFood" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" 
      android:padding="5dp" 
      android:text="Add Food"/> 

     <Button 
      android:id="@+id/btn_addExercise" 
      android:layout_width="130dp" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" 
      android:padding="5dp" 
      android:text="Add Exercise"/> 

     </TableRow> 

     <TableRow 
      android:id="@+id/buttonRow2" 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:orientation="horizontal" > 

     <Button 
      android:id="@+id/btn_recWeight" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:padding="5dp" 
      android:text="Record Weight" /> 

     <Button 
      android:id="@+id/btn_sgstMeal" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:padding="5dp" 
      android:text="Suggest Meal/Exercise" /> 

    </TableRow> 
    </TableLayout> 
</TableLayout> 

편집 :

지금은 거의 작동합니다.

enter image description here

<?xml version="1.0" encoding="UTF-8"?> 
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/tableLayout1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <TableRow 
     android:id="@+id/tableRow1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center_horizontal" 
     android:paddingTop="10dp" > 

     <TextView 
      android:id="@+id/txt_currentDate" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_span="6" 
      android:gravity="center" 
      android:text="@string/CurrentDate" 
      android:textSize="18dp" 
      android:textStyle="bold" 
      android:typeface="serif" > 
     </TextView> 
    </TableRow> 

    <TableRow 
     android:id="@+id/progressBarRow" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center_horizontal" 
     android:paddingTop="5dp" > 

     <ProgressBar 
      android:id="@+id/DailyCalorieProgress" 
      style="?android:attr/progressBarStyleHorizontal" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_span="3" 
      android:progress="80" /> 

    </TableRow> 

    <TableRow 
     android:id="@+id/tableRow3" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center_horizontal" 
     android:paddingTop="5dp" > 

     <TextView 
      android:id="@+id/textView1" 
      android:gravity="center" 
      android:text="@string/CalorieLimit" 
      android:textStyle="bold" > 
     </TextView> 

     <TextView 
      android:id="@+id/textView2" 
      android:gravity="center" 
      android:text="@string/CalorieLimitData" > 
     </TextView> 

     <TextView 
      android:id="@+id/textView3" 
      android:gravity="center" 
      android:text="@string/CaloriesLeft" 
      android:textStyle="bold" > 
     </TextView> 

     <TextView 
      android:id="@+id/textView4" 
      android:gravity="center" 
      android:text="@string/CaloriesLeftData" > 
     </TextView> 
    </TableRow> 

    <TextView 
     android:id="@+id/textView5" 
     android:gravity="center_horizontal" 
     android:text="@string/Line" > 
    </TextView> 



     <TableRow 
      android:id="@+id/buttonRow1" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:orientation="horizontal" 
      android:paddingTop="10dp" > 

     <Button 
      android:id="@+id/btn_addFood" 
      android:layout_width="0dip" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:padding="5dp" 
      android:text="@string/AddFood"/> 

     <Button 
      android:id="@+id/btn_addExercise" 
      android:layout_width="0dip" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:padding="5dp" 
      android:text="@string/AddExercise"/> 

     </TableRow> 

     <TableRow 
      android:id="@+id/buttonRow2" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:orientation="horizontal" 
      android:paddingTop="10dp" > 

     <Button 
      android:id="@+id/btn_recWeight" 
      android:layout_width="0dip" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:padding="5dp" 
      android:text="@string/RecordWeight" /> 

     <Button 
      android:id="@+id/btn_sgstMeal" 
      android:layout_width="0dip" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:padding="5dp" 
      android:text="@string/SuggestedMeal_Exercise" /> 

    </TableRow> 
</TableLayout> 

답변

11

레이아웃 정말 "효율적"아니다. 그러나 anyway..to 당신은 아무것도하지 않습니다

android:layout_width="0dip" 
android:layout_height="wrap_content" 
android:layout_weight="1" 

0dip에 버튼의

android:layout_width="fill_parent" 
android:layout_height="wrap_content" 

모두에 TableRow (당신의 버튼을 포함하는 것)을 설정해야 문제를 해결한다. 그러나 무게 매개 변수 때문에 안드로이드는 실제 크기를 측정하는 작업을 수행하므로 "관련"값을 제공 할 필요가 없습니다.

+0

대단히 감사합니다. 하나의 작은 문제가 있습니다. 마지막 단추의 텍스트가 너무 커서 두 줄로 표시되고 테이블 행에 맞지 않습니다 .... 어떻게 할 수 있는지 알고 있습니까? 내 테이블 행을 확대, 높이를 변경? –

+0

그림을 넣고 테이블을 제거했습니다. 테이블 안쪽에 레이아웃이 있습니다. 레이아웃, 다소 중복되었습니다 .... –

+0

문제를 해결하기 위해 이름을 더 작게 변경했습니다. 문제가 무엇인지 알면 나는 알고 싶지만 많은 어려움에 다시 고마워하지 마라. –

관련 문제