2015-09-27 2 views
0

Итак, все, что я пытаюсь сделать, это установить четыре круга в линейном макете. Проблема состоит в том, что круги появляются как овалы. Я попытался не устанавливать ширину и высоту в файлах circle.xml, я попробовал установить ширину окружностей в представлении 0dp, wrap_content и 50dp, чтобы соответствовать высоте, тем не менее, овалам. Я пробовал не устанавливать weightSum в макете с тем же результатом, это похоже на то, что он не должен быть там.Двойные файлы с несколькими форматами Android в LinearLayout

LinearLayout

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="200dp" 
    android:paddingRight="@dimen/xlarge_padding" 
    android:paddingLeft="@dimen/xlarge_padding" 
    android:orientation="horizontal" 
    android:weightSum="4"> 

circle_blue.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="oval"> 
<size 
    android:width="50dp" 
    android:height="50dp" /> 
<solid android:color="@color/fc_blue"/> 

Я зову круги с видами, которые имеют ширину набора на 0dp и высоту 50dp, и layout_weight до 1 с фоном, установленным на circle_xxx.xml.

Должен ли я просто сбросить настройки веса и использовать прокладку, чтобы разделить их на части?

Вот скриншот того, как они выглядят на устройстве

https://www.dropbox.com/s/afh8d8m3jrbhrzf/Screenshot_2015-09-27-06-35-07.png?dl=0

ответ

0

Это эффект от использования весов.
Я догадался, потому что вы использовали (бесполезный) атрибут weightSum в LinearLayout.

Теперь весы фактически изменяют размеры просмотров детей, размер которых не превышает 50 дп, в то время как они поддерживают 50 дп в высоту.

Именно поэтому вы получаете овалы, а не круги.

+1

Спасибо за ответ. Я удалил все атрибуты веса, и, как ни удивительно, они были равномерно распределены по макете. :) –

Смежные вопросы