如何将我的 textview 放在另一个下面?
How do I place my textview under another?
我想把我的 textview4
放在下面,我的 sourceNameTextView
,但是我看不到 textView4
的文字?我是使用相对布局的新手,有人可以告诉我为什么会这样以及如何解决这个问题吗?我已经尝试在 Whosebug 上阅读一些 post,但找不到任何解决此问题的方法。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="80dp"
android:layout_marginLeft="18dp"
android:layout_marginRight="18dp"
android:layout_marginBottom="18dp"
android:background="@drawable/gradient"
android:clickable="true"
android:focusable="true"
android:padding="6dip">
<ImageView
android:id="@+id/newsThumbnail"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_marginRight="6dip"
android:contentDescription="TODO"
android:src="@mipmap/ic_launcher" />
<TextView
android:id="@+id/newsBody"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignWithParentIfMissing="true"
android:layout_above="@id/sourceName"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_toRightOf="@id/newsThumbnail"
android:gravity="center_vertical"
android:textColor="#FFFFFF"
android:textSize="16sp" />
<TextView
android:id="@+id/sourceName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginBottom="10dp"
android:layout_toEndOf="@id/newsThumbnail"
android:ellipsize="marquee"
android:singleLine="true"
android:text="Description"
android:textColor="#9A9CA5"
android:textSize="12sp" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_toEndOf="@id/newsThumbnail"
android:layout_below="@+id/sourceName"
android:layout_height="wrap_content"
android:text="TextViwew.." />
</RelativeLayout>
您看不到 textView4
的原因是您将 android:layout_alignParentBottom="true"
添加到 sourceName
TextView
,
这意味着您想要将 textView4
的视图对齐到正好位于父视图底部的视图下方。
所以,textView4
会离开屏幕,或者正确地说会离开 RelativeLayout
(在它的底部)
要解决此问题,您需要从 sourceName
TextView
中删除 android:layout_alignParentBottom="true"
此外,当您进行此更改时,您会注意到 newsBody
现在消失了,那是因为您向其中添加了 android:layout_above="@id/sourceName"
而没有将 sourceName
限制在它的底部。
您现在可以使用:
<?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="80dp"
android:layout_marginLeft="18dp"
android:layout_marginRight="18dp"
android:layout_marginBottom="18dp"
android:background="@drawable/gradient"
android:clickable="true"
android:focusable="true"
android:padding="6dip">
<ImageView
android:id="@+id/newsThumbnail"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_marginRight="6dip"
android:contentDescription="TODO"
android:src="@mipmap/ic_launcher" />
<TextView
android:id="@+id/newsBody"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignWithParentIfMissing="true"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_toEndOf="@id/newsThumbnail"
android:layout_toRightOf="@id/newsThumbnail"
android:gravity="center_vertical"
android:textColor="#FFFFFF"
android:textSize="16sp" />
<TextView
android:id="@+id/sourceName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_below="@+id/newsBody"
android:layout_marginBottom="10dp"
android:layout_toEndOf="@id/newsThumbnail"
android:ellipsize="marquee"
android:singleLine="true"
android:text="Description"
android:textColor="#9A9CA5"
android:textSize="12sp" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/sourceName"
android:layout_toEndOf="@id/newsThumbnail"
android:layout_toRightOf="@id/newsThumbnail"
android:text="TextViwew.." />
</RelativeLayout>
编辑: 也如 Zain 所说,您有 alignParentBottom 导致视图将您的布局推出视图。如果您真的不需要使用它,请尽量避免使用固定高度。但不管怎样,我认为使用 LinearLayout
会让你的生活更轻松,将来编辑代码也会更容易。
您看不到 TextView
,因为您在 RelativeLayout
上设置了固定高度。其他布局占用太多 space,因此您的 TextView
低于 sourceName
但不可见,因为它不在布局中。
要更改此设置,您可以添加 wrap_content
作为 RelativeLayout
的高度。然后你将不得不多次使用布局属性来获得你想要的。如果您只对布局的正确部分使用 LinearLayout
,您想要实现的目标会更容易。像这样:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="18dp"
android:layout_marginRight="18dp"
android:layout_marginBottom="18dp"
android:clickable="true"
android:focusable="true"
android:padding="6dip">
<ImageView
android:id="@+id/newsThumbnail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginEnd="6dip"
android:contentDescription="TODO"
android:src="@mipmap/ic_launcher" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toEndOf="@id/newsThumbnail"
android:orientation="vertical">
<TextView
android:id="@+id/newsBody"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#000"
android:text="NEWS BODY"
android:textSize="16sp" />
<TextView
android:id="@+id/sourceName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:ellipsize="marquee"
android:singleLine="true"
android:text="Description"
android:textColor="#9A9CA5"
android:textSize="12sp" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextViwew.." />
</LinearLayout>
</RelativeLayout>
结果:
我想把我的 textview4
放在下面,我的 sourceNameTextView
,但是我看不到 textView4
的文字?我是使用相对布局的新手,有人可以告诉我为什么会这样以及如何解决这个问题吗?我已经尝试在 Whosebug 上阅读一些 post,但找不到任何解决此问题的方法。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="80dp"
android:layout_marginLeft="18dp"
android:layout_marginRight="18dp"
android:layout_marginBottom="18dp"
android:background="@drawable/gradient"
android:clickable="true"
android:focusable="true"
android:padding="6dip">
<ImageView
android:id="@+id/newsThumbnail"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_marginRight="6dip"
android:contentDescription="TODO"
android:src="@mipmap/ic_launcher" />
<TextView
android:id="@+id/newsBody"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignWithParentIfMissing="true"
android:layout_above="@id/sourceName"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_toRightOf="@id/newsThumbnail"
android:gravity="center_vertical"
android:textColor="#FFFFFF"
android:textSize="16sp" />
<TextView
android:id="@+id/sourceName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginBottom="10dp"
android:layout_toEndOf="@id/newsThumbnail"
android:ellipsize="marquee"
android:singleLine="true"
android:text="Description"
android:textColor="#9A9CA5"
android:textSize="12sp" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_toEndOf="@id/newsThumbnail"
android:layout_below="@+id/sourceName"
android:layout_height="wrap_content"
android:text="TextViwew.." />
</RelativeLayout>
您看不到 textView4
的原因是您将 android:layout_alignParentBottom="true"
添加到 sourceName
TextView
,
这意味着您想要将 textView4
的视图对齐到正好位于父视图底部的视图下方。
所以,textView4
会离开屏幕,或者正确地说会离开 RelativeLayout
(在它的底部)
要解决此问题,您需要从 sourceName
TextView
android:layout_alignParentBottom="true"
此外,当您进行此更改时,您会注意到 newsBody
现在消失了,那是因为您向其中添加了 android:layout_above="@id/sourceName"
而没有将 sourceName
限制在它的底部。
您现在可以使用:
<?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="80dp"
android:layout_marginLeft="18dp"
android:layout_marginRight="18dp"
android:layout_marginBottom="18dp"
android:background="@drawable/gradient"
android:clickable="true"
android:focusable="true"
android:padding="6dip">
<ImageView
android:id="@+id/newsThumbnail"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_marginRight="6dip"
android:contentDescription="TODO"
android:src="@mipmap/ic_launcher" />
<TextView
android:id="@+id/newsBody"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignWithParentIfMissing="true"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_toEndOf="@id/newsThumbnail"
android:layout_toRightOf="@id/newsThumbnail"
android:gravity="center_vertical"
android:textColor="#FFFFFF"
android:textSize="16sp" />
<TextView
android:id="@+id/sourceName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_below="@+id/newsBody"
android:layout_marginBottom="10dp"
android:layout_toEndOf="@id/newsThumbnail"
android:ellipsize="marquee"
android:singleLine="true"
android:text="Description"
android:textColor="#9A9CA5"
android:textSize="12sp" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/sourceName"
android:layout_toEndOf="@id/newsThumbnail"
android:layout_toRightOf="@id/newsThumbnail"
android:text="TextViwew.." />
</RelativeLayout>
编辑: 也如 Zain 所说,您有 alignParentBottom 导致视图将您的布局推出视图。如果您真的不需要使用它,请尽量避免使用固定高度。但不管怎样,我认为使用 LinearLayout
会让你的生活更轻松,将来编辑代码也会更容易。
您看不到 TextView
,因为您在 RelativeLayout
上设置了固定高度。其他布局占用太多 space,因此您的 TextView
低于 sourceName
但不可见,因为它不在布局中。
要更改此设置,您可以添加 wrap_content
作为 RelativeLayout
的高度。然后你将不得不多次使用布局属性来获得你想要的。如果您只对布局的正确部分使用 LinearLayout
,您想要实现的目标会更容易。像这样:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="18dp"
android:layout_marginRight="18dp"
android:layout_marginBottom="18dp"
android:clickable="true"
android:focusable="true"
android:padding="6dip">
<ImageView
android:id="@+id/newsThumbnail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginEnd="6dip"
android:contentDescription="TODO"
android:src="@mipmap/ic_launcher" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toEndOf="@id/newsThumbnail"
android:orientation="vertical">
<TextView
android:id="@+id/newsBody"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#000"
android:text="NEWS BODY"
android:textSize="16sp" />
<TextView
android:id="@+id/sourceName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:ellipsize="marquee"
android:singleLine="true"
android:text="Description"
android:textColor="#9A9CA5"
android:textSize="12sp" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextViwew.." />
</LinearLayout>
</RelativeLayout>
结果: