将 'android: layout_below' 属性的值设置为来自不同布局 xml 文件的资源 id
Posted
技术标签:
【中文标题】将 \'android: layout_below\' 属性的值设置为来自不同布局 xml 文件的资源 id【英文标题】:Setting the value for 'android: layout_below' property to a resource id from a different layout xml file将 'android: layout_below' 属性的值设置为来自不同布局 xml 文件的资源 id 【发布时间】:2017-08-25 12:21:04 【问题描述】:我有一个如下所示的蓝图:
我在 xml 中指定了 tablayout 小部件,如下所示:
<android.support.design.widget.TabLayout
android:id="@+id/tabLayout"
style="@style/AppTabLayout"
android:layout_
android:layout_
android:layout_alignParentTop="true"
android:background="@color/tabBg"
android:minHeight="?attr/actionBarSize"
app:tabTextColor="@color/grey"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>
我设置了一个 ViewPager 滚动浏览每个选项卡的视图。现在在其中一个视图中 - 选项卡 3,我需要在 @id/tabLayout 下方排列我的组件
这是tab3.xml的内容:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:orientation="vertical">
<TextView
android:id="@+id/secondtext"
android:layout_
android:layout_
android:layout_below="@id/tabLayout"
android:background="@android:color/white"
android:text="second"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/thirdtext"
android:layout_
android:layout_
android:layout_below="@id/secondtext"
android:background="@android:color/white"
android:text="third"
android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>
第二个和第三个文本视图都显示在 tabLayout 后面,它们被 tabLayout 覆盖/隐藏。如何指定要在 tabLayout 正下方显示的文本视图,以便文本可见?
【问题讨论】:
【参考方案1】:与任何其他布局一样,RelativeLayout 仅负责布置其直接子级。因此,android:layout_below
和类似的属性只能用于同一个 RelativeLayout 父级中的两个视图。
在这种情况下,您必须将其添加到 ViewPager。然后,TextView 可以位于其容器的顶部,因为现在位于 TabBar 下方。
如果这对您的其他标签没有好处。您可以执行以下操作之一: - 将 TabBar 设置为固定高度并将其设置为文本视图的边距 - 在运行时查询TabBar的高度并将其应用为tab3中的padding或margin。
【讨论】:
这是我正在寻找的澄清。我将采用第二个建议:在运行时获取 tabLayout 的高度,并将其作为上边距应用于 tab3 的内容,甚至可能是 tab 3 的整个相对布局。【参考方案2】:在tab3.xml中给RelativeLayout定义一个id并使用。
【讨论】:
【参考方案3】:使用垂直方向的线性布局..它会工作:)
【讨论】:
在 tab3.xml 和 content_main_sportsbook.xml 中? 两者都使用线性布局以上是关于将 'android: layout_below' 属性的值设置为来自不同布局 xml 文件的资源 id的主要内容,如果未能解决你的问题,请参考以下文章
Android xml布局include中android:layout_below属性无法使用
Android xml布局include中android:layout_below属性无法使用