将视图附加到Android中的自定义RelativeLayout

Posted

技术标签:

【中文标题】将视图附加到Android中的自定义RelativeLayout【英文标题】:Attach view to custom RelativeLayout in Android 【发布时间】:2014-03-12 20:36:11 【问题描述】:

我有一个带有 match_parent 主 LinearLayout 视图和一个辅助 wrap_content LinearLayout 的 RelativeLayout,它最初是不可见的(消失了)。

次要的必须显示在屏幕的顶部,但在 xml 文件的开头声明它,即使设置为可见也不会显示,因为它位于主要的后面。 这就是它在主 LinearLayout 之后声明的原因。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:orientation="vertical">


    <LinearLayout
        android:id="@+id/main_layout"
        android:layout_
        android:layout_
        android:orientation="vertical">

        <!-- FULL SCREEN CONTENT -->

    </LinearLayout>

    <LinearLayout
        android:id="@+id/secondary_layout"
        android:layout_
        android:layout_
        android:background="@color/f_white_transparent"
        android:gravity="center"
        android:visibility="gone">

        <TextView
            android:id="@+id/myText"
            android:layout_
            android:layout_
            android:layout_margin="10dp" />
    </LinearLayout>

</RelativeLayout>

我想创建一个自定义的 RelativeLayout 用于所有 xml 文件,我可以在其中获得相同的行为,并且可以将任何内容放在主布局下。

还有什么方法可以使用xml吗?

【问题讨论】:

【参考方案1】:

您正在使用RelativeLayout,但不要使用它的好处。您可以首先声明wrap_content-Layout 并将参数android:layout_alignParentBottom="true" 添加到其中。

在您的match_parent-LinearLayout 中,您可以添加参数android:layout_above="@+id/secondary_layout" 以确保它将为辅助布局提供空间。这样gone 也可以工作。

【讨论】:

感谢您的回答,但我需要 wrap_content -Layout 真正位于 match_parent 之上。这就是为什么它的背景是半透明的。 对不起,我误解了你的问题。那你的问题是什么?您想在 XML 中定义像 MyRelativeLayout 这样的自定义类吗?您在那里实现的相同行为适用于任何其他布局,那么您想要得到什么? 是的,我想要一个自定义类 MyRelativeLayout,它在底部自动包含我的 wrap_content -Layout,而不是每次都手动包含它(我将在整个应用程序中将其用作默认值)。这基本上就像在自定义视图中自动包含页脚。然后我可以正常使用 MyRelativeLayout 附加其他布局,而无需每次都手动添加页脚。 片段到此为止。 RelativeLayout 是一个类,因此如果您想要自定义它,则必须在 Java 中将其定义为类,但在您的 RelativeLayout 中,您可以很好地定义两个包含不同片段的框架。在整个应用中,您可以同时填充它们或单独填充它们。 你有什么例子吗?

以上是关于将视图附加到Android中的自定义RelativeLayout的主要内容,如果未能解决你的问题,请参考以下文章

将标签和图像动态添加到 Android 中的自定义视图

如何删除android中的自定义列表视图项?

将快餐栏中的 ImageView 宽度与 Android 中的自定义视图匹配父项不起作用

将自定义视图附加到 Android 键盘的顶部

如何将自定义数据从ui-router中的视图传递到某个状态?

使用适用于 Android 应用的自定义适配器将项目动态添加到列表视图