Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将我的文本视图放置在另一个文本视图下?_Android_Android Layout_Android Relativelayout - Fatal编程技术网

Android 如何将我的文本视图放置在另一个文本视图下?

Android 如何将我的文本视图放置在另一个文本视图下?,android,android-layout,android-relativelayout,Android,Android Layout,Android Relativelayout,我正试图将我的textview4放在下面,我的sourceNameTextView,但我看不到textview4中的文本?我不熟悉使用相对布局,有人能告诉我为什么会发生这种情况,以及如何修复这种情况吗?我已经试过阅读一些关于stackoverflow的帖子,但是找不到任何可以解决这个问题的东西 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=&quo

我正试图将我的
textview4
放在下面,我的
sourceNameTextView
,但我看不到
textview4
中的文本?我不熟悉使用相对布局,有人能告诉我为什么会发生这种情况,以及如何修复这种情况吗?我已经试过阅读一些关于stackoverflow的帖子,但是找不到任何可以解决这个问题的东西

<?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>

您之所以看不到
TextView 4
,是因为您将
android:layout\u alignParentBottom=“true”
添加到
sourceName
TextView

这意味着您希望将
textView4
视图与正好位于父视图底部的视图下方对齐

因此,
textView4
将不在屏幕上,或者正确地说,将不在
RelativeLayout
(位于其底部)上

要解决此问题,您需要从
sourceName
TextView
中删除
android:layout\u alignParentBottom=“true”

另外,当您进行此更改时,您会注意到
新闻正文
现在已不存在,这是因为您在其中添加了
android:layout_over=“@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>

您之所以看不到
TextView 4
,是因为您将
android:layout\u alignParentBottom=“true”
添加到
sourceName
TextView

这意味着您希望将
textView4
视图与正好位于父视图底部的视图下方对齐

因此,
textView4
将不在屏幕上,或者正确地说,将不在
RelativeLayout
(位于其底部)上

要解决此问题,您需要从
sourceName
TextView
中删除
android:layout\u alignParentBottom=“true”

另外,当您进行此更改时,您会注意到
新闻正文
现在已不存在,这是因为您在其中添加了
android:layout_over=“@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所说,您的底部对齐,这导致视图将布局从视图中推出。如果你真的不用固定高度,尽量避免固定高度。但不管怎样,我认为使用
LinearLayout
将使您的生活更加轻松,并且在将来编辑代码也会更加容易

您无法查看
文本视图
,因为您在
相对视图上设置了固定高度。其他布局占用了太多空间,因此您的
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>

结果如下:


编辑:正如Zain所说,您的底部对齐,这导致视图将布局推出视图。如果你真的不用固定高度,尽量避免固定高度。但不管怎样,我认为使用
LinearLayout
将使您的生活更加轻松,并且在将来编辑代码也会更加容易

您无法查看
文本视图
,因为您在
相对视图上设置了固定高度。其他布局占用了太多空间,因此您的
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>

结果如下:


我明白了,谢谢你。很高兴我能帮忙。此外,Zain在不使用LinearLayout的情况下为您提供了以下解决方案。只是你的代码非常凌乱,所以试着编写干净的代码,这将在以后的编辑中对你有很大帮助。我明白了,谢谢你,谢谢你。很高兴我能帮上忙。此外,Zain在不使用LinearLayout的情况下为您提供了以下解决方案。只是你的代码非常凌乱,所以试着编写干净的代码,这将在以后的编辑中对你有很大帮助。