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"
обе структуры кадра, потому что ушел это удалить все пространство, а невидимые скрыть только вид, но пространство остается.