0

Я использую библиотеку поддержки процентов в моем проекте.Как разделить пространство поровну между нечетным числом просмотров в макете с использованием библиотеки поддержки процентов?

compile 'com.android.support:percent:23.1.0'

У меня есть три ImageViews в LinearLayout, которые, как предполагается, взять пространство одинаково (в горизонтальном направлении). Но так как библиотека поддержки процентов имеет PercentRelativeLayout и PercentFrameLayout, так что я googled для PercentLinearLayout и нашел one sample for it.

Вот код макета:

<com.example.layouts.PercentLinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="100dp" 
    android:orientation="horizontal"> 

    <ImageView 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:background="@drawable/img_01" 
     app:layout_widthPercent="33.3%" /> // <- what should I write here? 

    <ImageView 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:background="@drawable/img_02" 
     app:layout_widthPercent="33.3%" /> // <- and here.. 

    <ImageView 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:background="@drawable/img_03" 
     app:layout_widthPercent="33.3%" /> // <- and here.. 

</com.example.layouts.PercentLinearLayout> 

Вы можете видеть, что я присвоил 33,3% пространства для каждого ImageView но есть еще 0,1% свободное место. Хотя 0.1% экранное пространство не так важно заметить, но текущий подход мне не кажется правильным.

PS: Раньше я использовал вес (каждый ImageView имел вес 1), но поскольку он не подходит для производительности, поэтому я решил пойти с процентами вместо этого.

+0

Вы можете достичь этого без использования поддержки lib и вместо этого использовать linearlayout с весом и вложить ваши изображения в линейные макеты. – Skynet

+1

сделать это 33.333%, тогда останется только 0.001%. – activesince93

+2

«Раньше я использовал вес (каждый ImageView имел вес 1), но поскольку он не очень хорош для производительности» - пожалуйста, опубликуйте свой анализ производительности, указав, что ваше конкретное использование «LinearLayout» и равных весов было «не очень полезно для производительности», либо на абсолютной основе или по сравнению с тем, что вы здесь пытаетесь. ** Все ** макеты «не подходят для производительности» так или иначе. – CommonsWare

ответ

2

Вы могли бы использоваться LinearLayout с weightSum набор на 3 и android:layout_weight="1" каждому ImageView

+0

Это именно то, что я делал раньше. Мне было интересно, как справиться с этой ситуацией, используя процентную библиотеку поддержки. –

0

Если вы хотите сделать это с процентами вы можете установить weightSum до 100, а затем android:layout_weight на номер, который вы хотите в процентах.