Прямо сейчас у меня есть представления с layout_weight внутри другого представления, которое также имеет тот же атрибут, который заставляет внешний вид вычисляться экспоненциально. Я рассматриваю возможность вложения другого набора представлений с весами внутри внутреннего вида, но это приведет к тому, что внешний вид будет вычисляться больше раз, чем хотелось бы. Я просто разделяю области равномерно (каждый вид внутри группы имеет одинаковый вес), но я хочу, чтобы все было правильно масштабировано независимо от того, какой размер или DPI на экране. Есть ли другой способ эффективного разделения видов в другом представлении?
Ответ DeeV на этот вопрос неплохо справляется с этим:
LinearLayout
свой верхнийLinearLayout
наRelativeLayout
иLinearLayout
двух детей с> невидимымView
в центре:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/top"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/center_point"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_centerInParent="true"/>
<LinearLayout
android:id="@+id/left_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignRight="@+id/center_point>
</Linearlayout>
<LinearLayout
android:id="@+id/right_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_alignLeft="@+id/center_point>
</Linearlayout>
</RelativeLayout>
layout_weight
обычно лучший способ сделать это. Если вы не видитеlayout_weight
макет, значит, вы используетеlayout_weight
в неправильных местах или с неправильными значениями 'weight'. Опубликуйте свой макет XML и объясните, как вы хотите, чтобы макет выглядел.