линейный макет не центрируется вертикально в родительском макете, когда его линейный макет - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть этот xml

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_vertical"
        android:background="@color/google_blue900"
        android:orientation="vertical">
      <LinearLayout
          android:id="@+id/display_name_layout"
          android:layout_width="wrap_content"
          android:layout_height="0dp"
          android:layout_weight="1"
          android:gravity="center_vertical"
          android:background="@color/google_red100"
          android:orientation="horizontal">
        <TextView
            android:id="@+id/account_display_name"
            style="@style/AccountDataDisplayName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/google_green50"
            tools:text="DisplayNameIsLongSoItShouldBeTruncatedAtSomePoint"/>
        <ImageView
            android:id="@+id/display_name_chevron"
            android:layout_width="@dimen/account_menu_chevron_size"
            android:layout_height="@dimen/account_menu_chevron_size"
            android:layout_marginTop="@dimen/account_menu_chevron_top_margin"
            android:layout_marginLeft="@dimen/account_menu_chevron_left_margin"/>
      </LinearLayout>
      <LinearLayout
          android:id="@+id/account_name_layout"
          android:layout_width="wrap_content"
          android:layout_height="0dp"
          android:layout_weight="1"
          android:gravity="center_vertical"
          android:background="@color/google_blue50"
          android:orientation="horizontal">
        <TextView
            android:id="@+id/account_name"
            style="@style/AccountDataAccountName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:background="@color/google_yellow50"
            tools:text="emailisverylongaswellwewantittogettruncated@gmail.longdomain.com"/>
        <ImageView
            android:id="@+id/account_name_chevron"
            android:layout_width="@dimen/account_menu_chevron_size"
            android:layout_height="@dimen/account_menu_chevron_size"
            android:layout_marginTop="@dimen/account_menu_chevron_top_margin"
            android:layout_marginLeft="@dimen/account_menu_chevron_left_margin"/>
      </LinearLayout>
    </LinearLayout>

, когда я изменяю видимость второй линейной компоновки, которая пропала,

Я ожидаю, что верхняя линейная компоновка будет центральной вертикалью в ее линейной компоновкеродитель.

что мне не хватает, так как теперь оно не по центру по вертикали

enter image description here

1 Ответ

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

Используйте invisible вместо gone.Это решит проблему.Что делает gone, так это полностью удаляет макет, и в результате выравнивание макета исчезает, а при использовании invisible просто превращается в невидимое.

...