Android-макет, настройка кнопок для того же размера - PullRequest
4 голосов
/ 01 апреля 2012

Я совершенно новичок в программировании приложений для Android в Eclipse.

С учетом сказанного я основал себя на коде в интернете и нашел этот 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>

1 Ответ

11 голосов
/ 01 апреля 2012

Ваш макет не очень "эффективен".Но в любом случае .. чтобы решить вашу проблему, вы должны установить TableRow (те, которые содержат ваши кнопки) на

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

, а все ваши кнопки на

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

0dip несделать что-нибудьНо из-за параметра веса android выполняет измерение фактического размера, поэтому вам не нужно указывать «соответствующее» значение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...