Линейный макет для приложения калькулятора - PullRequest
0 голосов
/ 12 июля 2011

У меня проблема с последним рядом моего линейного макета.Я хочу, чтобы 0 был того же размера, что и все остальные числа, а затем остальные 4 кнопки в этом ряду должны быть такими же, как показано ниже (используется Абсолютная разметка):

Правильный вид Я не мог опубликовать изображения, так что это крошечный

Но с использованием Linear Layout, который мне нужно использовать, чтобы он выглядел правильно на всех размерах экрана, я не могу заставить последний ряд выглядеть правильно.Проблема в изображениях, они не позволяют мне правильно масштабировать кнопки.Я уверен, что смогу исправить это, уменьшив изображения, но я хочу, чтобы они оставались такими же, и просто делали кнопки тоньше.Кто-нибудь знает как это сделать?Кажется, веса не работают.

Требуется изменение Я не могу опубликовать изображения, так что это крошечная картинка

Вот мой xml-файл:

<?xml version="1.0" encoding="utf-8"?>

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

    <TextView
        android:id="@+id/widget86"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"/>

    <TextView
        android:id="@+id/widget40"
        android:gravity="right"
        android:textSize="40sp"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"/>

</LinearLayout>

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

    <Button
        android:id="@+id/widget34"
        android:text="7"
        android:gravity="center_vertical|center_horizontal" 
        android:layout_width="wrap_content"
        android:textSize="35sp"
        android:layout_height="fill_parent"
        android:layout_weight="1"/>

    <Button
        android:id="@+id/widget35"
        android:gravity="center_vertical|center_horizontal" 
        android:text="8"
        android:textSize="35sp"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"/>

    <Button
        android:id="@+id/widget37"
        android:gravity="center_vertical|center_horizontal" 
        android:text="9"
        android:textSize="35sp"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"/>

</LinearLayout>

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

    <Button
        android:id="@+id/widget31"
        android:gravity="center_vertical|center_horizontal" 
        android:text="4"
        android:layout_width="wrap_content"
        android:textSize="35sp"
        android:layout_height="fill_parent"
        android:layout_weight="1"/>

    <Button
        android:id="@+id/widget32"
        android:gravity="center_vertical|center_horizontal" 
        android:text="5"
        android:textSize="35sp"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"/>

    <Button
        android:id="@+id/widget33"
        android:gravity="center_vertical|center_horizontal" 
        android:text="6"
        android:textSize="35sp"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"/>

</LinearLayout>

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

    <Button
        android:id="@+id/widget28"
        android:gravity="center_vertical|center_horizontal" 
        android:text="1"
        android:textSize="35sp"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"/>

    <Button
        android:id="@+id/widget29"
        android:gravity="center_vertical|center_horizontal" 
        android:text="2"
        android:layout_width="wrap_content"
        android:textSize="35sp"
        android:layout_height="fill_parent"
        android:layout_weight="1"/>

    <Button
        android:id="@+id/widget30"
        android:gravity="center_vertical|center_horizontal" 
        android:text="3"
        android:textSize="35sp"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"/>

</LinearLayout>

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

    <Button
        android:id="@+id/widget38"
        android:gravity="center_vertical|center_horizontal" 
        android:text="0"
        android:layout_width="wrap_content"
        android:textSize="35sp"
        android:layout_height="fill_parent"
        android:layout_weight="30"/>

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_weight="30">

        <Button
            android:id="@+id/widget72"
                android:gravity="center_vertical|center_horizontal" 
                android:text="R"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:textSize="35sp"
                android:layout_weight="1"/>

        <Button
                android:id="@+id/widget73"
                android:gravity="center_vertical|center_horizontal" 
                android:text="Z"
                android:layout_width="wrap_content"
                android:textSize="35sp"
                android:layout_height="fill_parent"
                android:layout_weight="1"/>

            <Button
                android:id="@+id/widget70"
                android:gravity="center_vertical|center_horizontal" 
                android:layout_width="wrap_content"
                android:drawableBottom="@drawable/back"
                android:textSize="35sp"
                android:layout_height="fill_parent"
                android:layout_weight="1"/>

            <Button
                android:id="@+id/widget39"
                android:gravity="center_vertical|center_horizontal" 
                android:textSize="35sp"
                android:drawableBottom="@drawable/search"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_weight="1"/>

     </LinearLayout>

</LinearLayout>

Ответы [ 2 ]

0 голосов
/ 12 июля 2011

Last LinearLayout состоит из двух объектов: Button и LinearLayout. Вы хотите, чтобы это было разделено: 1 единица для кнопки и 2 единицы для LL. Поэтому вам следует установить кнопки layout_weight = "1" и LL layout_weight = "2". Установите также layout_width = "fill_parent" (или "0dp" - должно действовать так же, как вес обеспечит правильный вес).

Вы также можете поставить «R» и «Z» для одного LL и «стрелка», «search» для второго LL. Тогда у вас будет три объекта одинакового размера, поэтому поместите layout_weight = "1" для каждого из них.

Вот статья об использовании весового параметра: http://developer.android.com/resources/articles/layout-tricks-efficiency.html

0 голосов
/ 12 июля 2011

В последней строке явно не хватает места.Попробуйте использовать TableLayout или RelativeLayout.Но, используя их, у вас, вероятно, будут проблемы с пространством.

...