Код в open sorce проекте. Рабочий ли он?

Интерфейс, диалоги, темы, стили, меню
Ответить
lost
Сообщения: 12
Зарегистрирован: 06 фев 2014, 14:54

Код в open sorce проекте. Рабочий ли он?

Сообщение lost » 02 апр 2014, 19:33

Код, представленный ниже - часть одного из опенсорс проектов.
Не понимаю как код, представленный ниже может работать. Ведь у всех ImageView в android:layout_width установленно match_parent, а не wrap_content. Может я что то не понимаю или это ошибка?

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
	
	...

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="0.4" >
        
        <ImageView
            android:contentDescription="@string/content_description_add_contact"
            android:id="@+id/addContact"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:scaleType="fitXY"
            android:src="@drawable/add_contact" />
        
        <ImageView
            android:id="@+id/Call"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:scaleType="fitXY"
            android:src="@drawable/call" />
        
        <ImageView
            android:id="@+id/Erase"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:scaleType="fitXY"
            android:src="@drawable/backspace" />
        
    </LinearLayout>
	
	...
	
</LinearLayout>

siberprogs
Сообщения: 93
Зарегистрирован: 05 мар 2014, 06:20

Re: Код в open sorce проекте. Рабочий ли он?

Сообщение siberprogs » 02 апр 2014, 20:00

Ошибки нет, так как у них добавлен параметр android:layout_weight="1"
см урок:http://startandroid.ru/ru/uroki/vse-uro ... entov.html
при android:layout_width="match_parent" они делят ширину экрана между собой на равные части.
Linux Fedora RFRemix + Intellij Idea

lost
Сообщения: 12
Зарегистрирован: 06 фев 2014, 14:54

Re: Код в open sorce проекте. Рабочий ли он?

Сообщение lost » 03 апр 2014, 13:43

siberprogs писал(а):Ошибки нет, так как у них добавлен параметр android:layout_weight="1"
см урок:http://startandroid.ru/ru/uroki/vse-uro ... entov.html
при android:layout_width="match_parent" они делят ширину экрана между собой на равные части.
Спасибо! Я прочел урок еще раз и до момента когда я начал пользоваться - я думал что я понимаю смысл layout_weight, но код ниже разрушил мое понимание.
На экране в итоге я увидел кнопки B1 и B3, которые занимают 2/3 и 1/3 соответственно. Не понимаю куда делась кнопка B2. Я ожидал что будет на экране 3 кнопки, которые по высоте займут 6/6...1/6, 3/6 и 2/6. Центральная кнопка должна была занимать самое большое пространство по высоте.

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:text="B1" >
    </Button>

    <Button
        android:id="@+id/button2"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="3"
        android:text="B2" >
    </Button>

    <Button
        android:id="@+id/button3"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="2"
        android:text="B3" >
    </Button>

</LinearLayout>

siberprogs
Сообщения: 93
Зарегистрирован: 05 мар 2014, 06:20

Re: Код в open sorce проекте. Рабочий ли он?

Сообщение siberprogs » 03 апр 2014, 15:36

lost писал(а): я думал что я понимаю смысл layout_weight, но код ниже разрушил мое понимание.
На экране в итоге я увидел кнопки B1 и B3, которые занимают 2/3 и 1/3 соответственно. Не понимаю куда делась кнопка B2. Я ожидал что будет на экране 3 кнопки, которые по высоте займут 6/6...1/6, 3/6 и 2/6. Центральная кнопка должна была занимать самое большое пространство по высоте.
Если честно то и я смысл мало понимаю. Почему (для двух кнопок) например в отличии от урока, у меня кнопка с весом 1 занимает две трети размера, а с весом 2 - одну треть. А если уравновешивать layout (с match_parent) и view (с фиксированными размерами) то у view меняются пропорции.
Linux Fedora RFRemix + Intellij Idea

lost
Сообщения: 12
Зарегистрирован: 06 фев 2014, 14:54

Re: Код в open sorce проекте. Рабочий ли он?

Сообщение lost » 03 апр 2014, 16:47

siberprogs писал(а):
lost писал(а): я думал что я понимаю смысл layout_weight, но код ниже разрушил мое понимание.
На экране в итоге я увидел кнопки B1 и B3, которые занимают 2/3 и 1/3 соответственно. Не понимаю куда делась кнопка B2. Я ожидал что будет на экране 3 кнопки, которые по высоте займут 6/6...1/6, 3/6 и 2/6. Центральная кнопка должна была занимать самое большое пространство по высоте.
Если честно то и я смысл мало понимаю. Почему (для двух кнопок) например в отличии от урока, у меня кнопка с весом 1 занимает две трети размера, а с весом 2 - одну треть. А если уравновешивать layout (с match_parent) и view (с фиксированными размерами) то у view меняются пропорции.
Т.е. все же бага имеет место быть или я не правильно понимаю?

Ответить