当前位置: 首页 > 知识库问答 >
问题:

有没有办法让视图稍微超出其父布局?

罗河
2023-03-14

这是一个关于Android布局的问题。以下是我急切想要得到的:

深灰色是LinearLayout。橙色是布局X,然后绿色是FrameLayout。我需要将绿色放在其父布局X之外。描述的布局层次结构不能更改。唯一的选择是布局X-它可以是您想要的任何内容。

有什么想法吗?

共有3个答案

邬安邦
2023-03-14

只需将android:clipChildren=“false”添加到父布局中即可。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:clipChildren="false">

    <LinearLayout
        android:layout_marginLeft="-25dp"
        android:background="@color/colorGray"
        android:layout_width="100dp"
        android:layout_height="100dp"/>
    <LinearLayout
        android:gravity="center|left"
        android:layout_width="fill_parent"
        android:layout_height="100dp"
        android:background="@color/colorOrange">
        <LinearLayout
            android:layout_marginLeft="-25dp"
            android:background="@color/colorGreen"
            android:layout_width="50dp"
            android:layout_height="50dp"></LinearLayout>
    </LinearLayout>
</LinearLayout>
周飞
2023-03-14

您不能将绿色部分放在布局X中,因为它不能在其父级之外绘制。

因此,您应该实现RelativeLayout或FrameLayout(根布局)作为所有这些视图的父视图。

并将绿色视图作为根布局的子视图。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_root"
    android:layout_width="fill_parent"
    android:layout_height="200dp"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/layout_dark_grey"
        android:layout_width="100dp"
        android:layout_height="match_parent"
        android:orientation="vertical" >
    </LinearLayout>

    <LinearLayout
        android:id="@+id/layout_orange"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_toRightOf="@id/layout_dark_grey"
        android:orientation="vertical" >
    </LinearLayout>

    <RelativeLayout
        android:id="@+id/layout_green"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_centerVertical="true"
        android:layout_toLeftOf="300dp" >
    </RelativeLayout>

</RelativeLayout>
费凯康
2023-03-14

使用-

android:clipChildren="false"
android:clipToPadding="false"

在子视图的每个父视图中,然后您将视图的“左边距”设置为负值,这将使您的子视图超出父视图,甚至不会剪辑视图。

 类似资料:
  • 问题内容: 我在实现Runnable的类中的run()中调用的方法被设计为引发异常。 但是Java编译器不允许我这样做,建议我用try / catch包围它。 问题是,通过用try / catch包围它,我使 特定的 run()无效了。我 确实 想抛出该异常。 如果我指定的run()的本身,编译器会抱怨说。 通常,我对run()不会抛出异常完全满意 。但是,在我必须具有该功能的特殊情况下。 如何解

  • 所以我正在做一个需要xml模式的小项目,我对这个模式很不熟悉。 我希望能够设置模式以在两组属性之间进行选择,根据我的研究,这在XSD 1.0中是不可能的,但显然是XSD 1.1的一个特性。 目前我正在使用VisualStudio来完成我的工作,它似乎被困在XSD1.0模式中,这是有意义的,因为XSD1.1显然是一个最新的开发。 我的问题是,是否有一个插件/扩展可以让我在Visual Studio中

  • 问题内容: 我正在制作带有Netflix徽标的pure徽标,但遇到问题了。我创建了span元素,也创建了span 2的元素。但是,当与.netflix span:nth-​​进行比较时,我不知道如何将.netflix span:nth-​​child(2)放在z轴上。 child(2):之前。基本上,我的问题是,有什么方法可以将元素放置在z轴上,而不是根据它们的父元素而不是我们想要的任何元素。在此

  • 问题内容: 我有一个自动运行git clone /pull的脚本(这实际上发生在jenkinsCI中,但我的问题更笼统)。远程git服务器基于HTTPS。带有git客户端的计算机具有不稳定的DSL Internet连接,因此有时会重新连接并更改IP地址,从而丢失所有现有连接。当git客户端运行时连接失败时,客户端将永远不会成功,但也不会因超时而失败,因此我的脚本会挂断。 我想设置客户端,使其在一段

  • 更新: 谢谢所有的帮助。我将总结一下答案。 从@Jayde开始,他的回答成功地将结果减少到0.09秒,并且与限制中的数字成线性关系。 选择*from(选择table1.id作为table1\u id,从table1中选择table1.id 在@Rick James中,他提到这可能是表2的问题。因为我的表2只有几列,所以我可以省略它,自己进行连接,即使是在客户端! 所以我去掉了表2,它只有0.02s

  • 问题内容: 是否有一组命令行选项可以说服gcc从自包含的源文件生成平面二进制文件?例如,假设foo.c的内容是 没有外部引用,没有要导出到链接器的内容。我想获得一个仅带此功能机器说明的小文件,而无需任何其他装饰。有点像(DOS).COM文件,但32位保护模式除外。 问题答案: 试试看: 您可以使用来确保它是正确的: 并与二进制文件进行比较: