Как разделить пространство поровну между нечетным числом представлений в макете, используя библиотеку процентов поддержки?
Я использую библиотеку процентов поддержки в моем проекте.
compile 'com.android.support:percent:23.1.0'
У меня есть три ImageViews в LinearLayout, которые должны занимать пространство одинаково (в горизонтальном направлении). Но поскольку библиотека поддержки процентов имеет только PercentRelativeLayout и PercentFrameLayout, я нашел Google PercentLinearLayout и нашел для нее один пример.
Вот код макета:
<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), но так как это не очень хорошо для производительности, я решил вместо этого использовать проценты.
2 ответа
Вы могли бы использовать LinearLayout
с weightSum
установить на 3 и android:layout_weight="1"
для каждого ImageView
Если вы хотите сделать это с процентами, вы можете установить weightSum
до 100, а затем android:layout_weight
на число, которое вы хотите в процентах.