如果被gridview项目阻止,请隐藏imageview?

时间:2015-02-05 10:39:13

标签: android

我只是在gridview中的某个项阻止它时才会隐藏图像视图。

gridview设置为match_parent,imageview位于右下方,所以实际上它意味着一旦我们得到大约8个项目就应该隐藏它。我知道我可以创建一些静态逻辑来隐藏一定数量的项目,但这对所有设备都不会有效。

是否存在碰撞类型或任何方法来检查视图是否被子视图(gridview项目)阻止。

1 个答案:

答案 0 :(得分:0)

这是通过一些奇怪的解决方案解决的:

(C#Xamarin - 可以很容易地翻译成Java)

var size = this.connectionGrid.ChildCount;
        var shouldHide = false;
        var logoRect = new Rect();
        this.appLogo.GetHitRect(logoRect);

        for (int i = 0; i < size; i++) 
        { 
            var gridChild = this.connectionGrid.GetChildAt(i);
            var childRect = new Rect();
            gridChild.GetHitRect(childRect);

            if (childRect.Intersect(logoRect))
            {
                shouldHide = true;
            }
        } 

        this.appLogo.Visibility = shouldHide ? ViewStates.Invisible : ViewStates.Visible;