gpt4 book ai didi

android - 查看可见性状态 GONE 占用屏幕空间

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:13:49 27 4
gpt4 key购买 nike

我遇到了一个问题,即可见性状态为 GONE 的 View (不希望地)占用了屏幕空间。这个问题总是发生在 API 级别 <= 7 的设备上,但最近才发生在 8+ 设备上(在我使用 AsyncTasks 填充一些字段之后,根据 Show a progress bar when an Activity is loading )

一点背景:我创建了一个扩展 LinearLayout 的自定义 View ,其中包含一个“标题”按钮和(用户定义;在某些情况下,它是一些 TextView,在其他情况下它是 TableLayouts)“内容”。此 View 的目的是在点击标题按钮时切换内容 View (我不相信有一个内置的小部件可以做到这一点。我可能是错的)。

在 onLayout() 中,我明确地将除标题之外的所有 subview 的可见性状态设置为 GONE,这是第一次绘制:

protected void onLayout(boolean changed, int l, int t, int r, int b) {
if(initialDraw) {
setContentsVisible(false);
initialDraw = false;
}
super.onLayout(changed, l, t, r, b);
}

public void setContentsVisible(boolean visible) {
for(int i = 0; i < getChildCount(); i++) {
View child = getChildAt(i);

if(child != mTitle) {
child.setVisibility(visible ? VISIBLE : GONE);
}
}
}

最佳答案

将代码从 onLayout() 移至 onMeasure() 即可解决问题。

关于android - 查看可见性状态 GONE 占用屏幕空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4899389/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com