【问题标题】:How to use layout_below in RelativeLayout?如何在 RelativeLayout 中使用 layout_below?
【发布时间】:2023-04-01 17:18:01
【问题描述】:

这是我的代码(不是所有的代码,我已经删除了一些):

<RelativeLayout
        android:id="@+id/info_in_my"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/head_in_my"
        android:layout_marginTop="@dimen/spacing_size_36dp">

        <ImageView
            android:id="@+id/pic_in_my"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="@dimen/spacing_size_36dp"
            android:layout_alignParentStart="true"
            android:src="@mipmap/icon_policeman" />
        <TextView
            android:id="@+id/name_in_my"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="AAAAAA"
            android:layout_toEndOf="@id/pic_in_my"
            android:layout_centerInParent="true"
            android:textColor="@color/font_white"
            android:textSize="@dimen/font_size_18sp" />

        <TextView
            android:id="@+id/organization_in_my"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="BBBBBBBBBBBBBBBBB"
            android:layout_below="@+id/name_in_my"
            android:layout_toEndOf="@+id/pic_in_my"
            android:textSize="@dimen/font_size_12sp"
            android:textColor="@color/font_white" />

    </RelativeLayout>

这是结果:

我希望 String BBBBBBBBB 在 String AAAAAA 下面,所以不正确。

我在第一个TextView 中删除了android:layout_centerInParent="true",但没有任何变化。

当第一个View使用android:layout_centerInParent="true"android:layout_below="@+id/name_in_my"没用

我想知道为什么?

【问题讨论】:

  • 我添加了 'android:layout_marginTop="55dp"' 效果很好
  • 如果您在工具栏中这样做,最好检查 appbarlayout。

标签: android xml layout view


【解决方案1】:

要回答您的问题“如何在 RelativeLayout 中使用 layout_below?”,请查看以下示例:

<Button android:id="@+id/b1"
    .... />
<Button android:id="@+id/b2"
    android:layout_below="@id/b1"
    .... />

这意味着您希望按钮 b2 低于 b1。请注意,我使用@id 而不是@+id,因为我已经在按钮b1 的声明中添加了id b1,因此,没有理由再次添加它。

既然你想把BBBBB放在AAAA下面,你必须把layout_below="id of AAAA"放在BBBB里面。

android:layout_centerInParent 表示您希望视图位于父级的中心,在您的情况下是整个相对布局。

【讨论】:

    【解决方案2】:

    textviews 中使用toRightOf 而不是toEndOf

    【讨论】:

      【解决方案3】:

      试试下面的布局 -

      <RelativeLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      
      android:id="@+id/info_in_my"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:layout_below="@id/head_in_my"
          android:layout_marginTop="@dimen/spacing_size_36dp"
          >
          <ImageView
              android:id="@+id/pic_in_my"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_marginStart="@dimen/spacing_size_36dp"
              android:layout_alignParentStart="true"
              android:src="@drawable/ic_launcher"
              />
      
      <RelativeLayout
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_toRightOf="@+id/pic_in_my"
          android:layout_toEndOf="@+id/pic_in_my"
          android:layout_alignParentTop="true"
          android:layout_alignBottom="@+id/pic_in_my">
          <TextView
              android:id="@+id/name_in_my"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="AAAAAA"
              android:layout_centerVertical="true"
              android:textColor="@color/font_white"
              android:textSize="@dimen/font_size_18sp"
              />
      
      <TextView
          android:id="@+id/textView2"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="BBBBBBBBBBBBBBBBB"
          android:textSize="@dimen/font_size_12sp"
          android:textColor="@color/font_white"
          android:layout_below="@+id/name_in_my"
          android:layout_alignLeft="@+id/name_in_my"
          android:layout_alignStart="@+id/name_in_my" />
      </RelativeLayout>
      
      </RelativeLayout>
      

      【讨论】:

      • name_in_my TextView中删除android:layout_toEndOf="@id/pic_in_my"这一行,没有info_in_my RelativeLayout你就不能这样做
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-13
      • 1970-01-01
      • 1970-01-01
      • 2014-04-21
      相关资源
      最近更新 更多