android - 当 ViewGroup 的 sibling 消失时,我如何才能使 ViewGroup 的 child match_parent ?

标签 android android-layout viewgroup

我有一个布局,其根 ViewGroup 有两个 child ,其中只有一个始终可见。如果不适用,另一个 child 的可见性将在运行时设置为 View.GONE

当两个 child 都可见时,高度设置为 wrap_content 并且布局看起来很棒。问题是我想在另一个消失时将可见 View 扩展到 match_parent

有什么方法可以完成这个或等价物吗?

最佳答案

您可以像这样更改任何 View 的布局:

view.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));

构造函数采用宽度然后是高度,如:new LayoutParams(int width, int height)
此外,每种类型的 ViewGroup 都有一个 LayoutParams 类。确保导入引用特定 ViewGroup 的那个。所以如果你的 ViewGroup 是一个 LinearLayout 使用:

import android.widget.LinearLayout.LayoutParams;

I tried unsuccessfully figuring this strategy out

我不确定你在哪里遇到了麻烦,但这种方法只需要几行额外的代码:

// When you want to show both views
view1.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
view2.setVisibility(View.VISIBLE);
...

// When you want to hide the second view
view1.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
view2.setVisibility(View.GONE);

如果您多次隐藏/显示 View ,您可以保存对每个 LayoutParams 对象的引用,而不是重复创建新对象。

关于android - 当 ViewGroup 的 sibling 消失时,我如何才能使 ViewGroup 的 child match_parent ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12588654/

相关文章:

java - 我无法在 Android 的 Baseadapter 中使用 viewgroup

android - 使用 Android SDK 时 LinkedIn 访问 token 为空

javascript - 页面加载时从浏览器打开 android 应用程序

java - Android 中可打包数组类的问题

java - 如何创建特定尺寸的android studio布局文件夹?获取无效配置时出错 '1080x2340'

java - 如何检查 Json 对象中是否存在键并获取其值

java - 在父 View 中多次动态包含 XML 相对布局

android - 控制音频

Android 自定义文本View 来容纳图片和文字

Android:自定义 View 在错误的 x、y 坐标处绘制