将视图附加到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的主要内容,如果未能解决你的问题,请参考以下文章
将快餐栏中的 ImageView 宽度与 Android 中的自定义视图匹配父项不起作用