Как эффективнее центрировать вид в вертикальной линейной компоновке? - PullRequest
0 голосов
/ 28 сентября 2018

У меня вертикальная линейная компоновка с 2 видами внутри.

как я могу центрировать этот вид по вертикали?что является наиболее экономически эффективным

1) замените линейную разметку относительной разметкой и используйте android:center_toparent= true (дорого, как два прохода разметки для каждого рендера)

2) поместите два представления заполнителей, одну какпервый и последний ребенок.Eachi с height = 0 и weight = 1, поэтому левое пространство распределяется одинаково.Могу ли я сделать эти фиктивные представления как visibility = invisible?это экономит некоторую стоимость?

1 Ответ

0 голосов
/ 28 сентября 2018

Если в вашей деятельности не будет много (скажем, сотен или тысяч) этих представлений, то крайне маловероятно, что один дополнительный проход макета или два дополнительных представления распорки внесут какие-либо заметные изменения.Лично я бы даже не стал измерять, какая из этих стратегий самая быстрая;Я просто сделал бы то, что является стандартным в моей команде, или то, к чему я привык.

Сохранение трех наносекунд не поможет вашим пользователям в любом случае.Написание кода, к которому вы сможете вернуться через шесть месяцев и сразу понять, очень поможет вам или вашим партнерам по команде.

Моя внутренняя реакция на «лучший» способ сделать это (с точки зренияТермин «сопровождение») означает использование атрибута android:gravity в вашем LinearLayout.Нет необходимости в прокладке.

<?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:gravity="center"
    android:orientation="vertical">

    <View
        android:layout_width="match_parent"
        android:layout_height="96dp"
        android:background="#caf"/>

    <View
        android:layout_width="match_parent"
        android:layout_height="96dp"
        android:background="#fac"/>

</LinearLayout>

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...