Framelayout становится невидимым, но все еще занимает место

У меня есть XML-файл, где я управляю видимостью framelayout со стороны Java. xml имеет 2 framelayout как кнопку линейного размещения. ориентация горизонтальная. Как только я прячу первую кнопку справа, левая остается на своем месте, но она должна двигаться вправо.

Любые идеи, как это исправить?

вот мой код 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);
            }
        });
    }

2 ответа

Похоже, при нажатии на кнопку и настройке видимости вы используете View.INVISIBLE попробуйте использовать View.GONE для того же.

Есть два способа, которыми он использовал, чтобы постичь невидимое..

        android:visibility="invisible"

или установить гравитацию, как показано ниже.

        android:layout_gravity="left"
        android:layout_gravity="right"

обе структуры кадра, потому что ушел это удалить все пространство, а невидимые скрыть только вид, но пространство остается.

Другие вопросы по тегам