gpt4 book ai didi

android - 使 MyView 可见会导致 RelativeLayout 向下移动

转载 作者:行者123 更新时间:2023-11-30 02:45:50 25 4
gpt4 key购买 nike

我有一个较小的 RelativeLayout 和一个自定义布局 MyView,它们都包含在父 RelativeLayout 中。 MyView 的尺寸比子 RelativeLayout 大,但仅在特定事件期间出现。我不希望它占用此事件之外的布局空间。但是,当我将它设置为 View.VISIBLE 时,它会导致子 RelativeLayout 向下跳转。

包含这些 View 的父级 RelativeLayout 将在屏幕上移动。当用户触摸屏幕并触发 MotionEvent.MOVE 时,父 View 将被移动。当你将父 View 移动到屏幕的边缘并且 MyView 是 View.INVISIBLE 时,问题是 MyView 仍然会占用空间并与屏幕边框发生碰撞,看起来之间有一个看不见的墙child RelativeLayout 和屏幕边缘。我希望整个父 RelativeLayout View 的有效大小与子 RelativeLayout 相同,除非 MyView 可见。

这是一张有助于说明我的问题的图片。

http://imgur.com/zjU1mbP

<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom="http://schemas.android.com/apk/res/com.example.myapp">

<com.example.MyView
android:id="@+id/my_view"
android:layout_width="175dp"
android:layout_height="175dp"
android:visibility="gone"
android:layout_centerInParent="true"
android:background="@color/red"/>

<RelativeLayout
android:id="@+id/rl"
android:layout_width="wrap_content" //Less than 175dp
android:layout_height="wrap_content" //Less than 175dp
android:orientation="vertical"
android:layout_centerInParent="true" >

</RelativeLayout>
</merge>

然后将合并 View 放置在使用这些参数在 Java 中定义的父 RelativeLayout 中。

    params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.TOP | Gravity.LEFT;
params.x = 0;
params.y = (int) (deviceRes.y * 0.1);

最佳答案

将可见性更改为 invisible 而不是 `gone.

Invisible 仍然占用空间,因此您的布局不会移动。

gone 释放该空间。所以,当你让它再次可见时,当然一切都会改变。

From the docs

Constant Value Description

visible 0 Visible on screen; the default value.

invisible 1 Not displayed, but taken into account during layout (space is left for it).

gone 2 Completely hidden, as if the view had not been added.

关于android - 使 MyView 可见会导致 RelativeLayout 向下移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25060097/

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