[英]why cannot i see a textView above another view in relative layout?
我有这个xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingLeft="8dp"
android:paddingRight="8dp" >
<TextView
android:id="@+id/errorMsg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/pointsText"
android:visibility="gone"/>
<TextView
android:id="@+id/pointsText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/offers_list"
android:text="you have 100 points"
android:visibility="visible"/>
<ListView
android:id="@+id/offers_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:drawSelectorOnTop="false"
android:dividerHeight="0dp"
android:divider="#00000000"/>
</RelativeLayout>
但是,我在日食图形预览器中看不到pointsText。
我想念什么?
你有
android:layout_above="@+id/offers_list"
为您的TextView
但您对ListView
没有任何定位。 由于默认情况下RelativeLayout
会将其子代放置在左上角,因此ListView
会在顶部,并且在其上方没有位置可以放置TextView
。
尝试从TextView
删除该属性并添加
android:layout_below="@id/pointsText"
在您的ListView
。
我刚刚测试了它,它确实起作用。 我可以在列表上方看到pointsText TextView
。 因此,您将希望对错误TextView
做一些不同的事情,或者当您想要更改其visibility
时,很可能会遇到同样的问题。
有点题外话
RelativeLayout
没有orientation
属性,因此不会给您带来任何好处,但也不会给您带来任何实质性的伤害。
当您使用相对布局时,布局元素会相互放置。 为了防止这种情况,您应该相对于其他布局放置元素。 使您的代码像这样。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingLeft="8dp"
android:paddingRight="8dp" >
<TextView
android:id="@+id/errorMsg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/pointsText"
android:visibility="gone"/>
<TextView
android:id="@+id/pointsText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/offers_list"
android:text="you have 100 points"
android:visibility="visible"
android:layout_below="@+id/errorMsg"/>
<ListView
android:id="@+id/offers_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:drawSelectorOnTop="false"
android:dividerHeight="0dp"
android:divider="#00000000"
android:layout_below="@+id/pointsText"/>
</RelativeLayout>
现在您将能够看到所有布局
尝试这个:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="8dp"
android:paddingRight="8dp" >
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/errorMsg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"/>
<TextView
android:id="@+id/pointsText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="you have 100 points"
android:visibility="visible"/>
</LinearLayout>
<ListView
android:id="@+id/offers_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/linearLayout1"
android:divider="#00000000"
android:dividerHeight="0dp"
android:drawSelectorOnTop="false" />
</RelativeLayout>
如果这是活动中的片段,则可能要检查例如嵌套的AppBarLayout和添加片段的布局
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.