首页 > 解决方案 > Framelayout变得不可见但仍然占用空间

问题描述

我有一个 xml 文件,我在其中从 java 端管理框架布局的可见性。xml 有 2 个框架布局作为线性布局上的按钮。方向是水平的。一旦我隐藏了右边的第一个按钮,左边的按钮就会留在他的位置,但它应该向右移动。

任何想法如何解决这一问题 ?

这是我的 xml 代码:

  <LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_gravity="bottom|end">

    <FrameLayout
        android:id="@+id/btn1"
        android:layout_width="75dp"
        android:layout_height="75dp"
        android:background="@drawable/float_button"
        android:visibility="gone">
        <ImageView

            android:layout_width="25dp"
            android:layout_height="25dp"
            android:layout_gravity="center"
            android:id="@+id/icon2" />
    </FrameLayout>

    <FrameLayout
        android:id="@+id/btn2"
        android:layout_width="75dp"
        android:layout_height="75dp"
        android:background="@drawable/float_button"
        android:visibility="gone">
        <ImageView
            android:layout_width="25dp"
            android:layout_height="25dp"
            android:layout_gravity="center"
            android:id="@+id/icon1"
            >

        </ImageView>
    </FrameLayout>
</LinearLayout>

我的Java代码:

@Override
    public void notifyLayoutReady() {
        mHandler.post(new Runnable() {
            @Override
            public void run() {
                if (showUserOption("option1"))
                    mBtn1.setVisibility(View.VISIBLE);
                if (showUserOption("option2"))
                    mBtn2.setVisibility(View.VISIBLE);
            }
        });
    }

标签: androidvisibilityandroid-framelayout

解决方案


似乎在单击按钮并设置您正在使用的可见性时View.INVISIBLE,尝试使用View.GONE相同的方法。


推荐阅读