android - 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);
}
});
}
解决方案
似乎在单击按钮并设置您正在使用的可见性时View.INVISIBLE
,尝试使用View.GONE
相同的方法。
推荐阅读
- excel - 调试模式和运行模式在 selenium VBA (Excel) 上的行为不同
- php - 如果我可以通过 phpmyadmin 登录,有没有办法找到 MySQL 服务器的服务器名、用户名和密码?
- java - Joda DateTimeFormatter - 模式(字符串)的方法未定义
- ruby-on-rails - Rails - 如何防止 Sidekiq 降低服务器速度?
- javascript - (Firebase / Cloud Functions)PayloadTooLargeError:queryparse 参数过多
- typescript - 有问题
- 使用 Angular 6 和 Typescript
- python - PySide2:如何使装饰槽在其工作线程上执行?
- python - 使用 python 中的高级选项复制 7zip gzip
- firebase - 使用当前 userId (auth.uid) 在文档中设置 createdBy 字段
- ruby-on-rails - 使用 will_paginate 对列进行二次排序