当前位置: 首页 > 知识库问答 >
问题:

相对配重

东郭勇
2023-03-14

在布局资源XML中,我有3个RelativeLayout(s)位于主RelativeLayout内部。视图将垂直显示。这3个RelativeLayout()被设置在一起,我希望它们填充整个屏幕,而不是屏幕大小。我的,布局视图:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/backg"
 >

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="@dimen/top_mr_image"
    android:src="@drawable/temp" />

<RelativeLayout
    android:id="@+id/r1"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/imageView1"
    android:layout_marginLeft="10dp"
    android:background="@drawable/r1bg"
    android:layout_weight="1"

     >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_marginLeft="@dimen/txt_mr_right"
        android:layout_marginRight="@dimen/txt_mr_right"
        android:layout_marginTop="39dp"
        android:text="S"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@id/textView1"
        android:layout_marginLeft="@dimen/txt_mr_right"
        android:layout_marginRight="@dimen/txt_mr_right"
        android:text="T"
        android:textAppearance="?android:attr/textAppearanceLarge" />
</RelativeLayout>

    <RelativeLayout
        android:id="@+id/r2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignTop="@+id/r1"
        android:layout_toRightOf="@+id/r1"
        android:layout_weight="1" >
    </RelativeLayout>

            <RelativeLayout
        android:id="@+id/r3"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignTop="@+id/r2"
        android:layout_toRightOf="@+id/r2"
        android:layout_weight="1" >

    </RelativeLayout>

我为每个relativeLayout设置了weight=1layout_width=0dp并且这个技术适用于按钮,我以为relativeLayout也是一样的,看来我的想法错了。知道吗?

UPD1:我添加了我想要的图片

共有1个答案

卓麒
2023-03-14

relativelayout不关注android:layout_weight。(这是LinearLayout.LayoutParams的属性,但不是RelativeLayout.LayoutParams的属性。)

您应该能够通过一个简单得多的视图层次结构获得您想要的布局。不清楚您要做什么,因为最后两个relativelayout是空的。如果您需要一个纯粹垂直的组织,我建议使用linearlayout而不是relativelayout

编辑基于您的编辑,它看起来像您想要一个水平布局的三个复合视图,每一个可点击。我认为下面这样的方法会起作用:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <!-- First column -->
    <LinearLayout
        android:id="@+id/firstColumn"
        android:orientation="vertical"
        android:gravity="center_horizontal"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        >

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="..." />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:text="text 1"
            . . . />
    </LinearLayout>

    <!-- Second column -->
    <LinearLayout . . . >
        . . .
    </LinearLayout>
</LinearLayout>

如果按钮的内容不正确,您可以用relativeLayout替换第二级的linearlayout视图,如果这有助于更好地组织布局。

 类似资料:
  • 我有一个系统。NET客户端使用Kerberos对Java服务器进行身份验证。一切正常,但我正在努力改进服务器配置。目前在C:\的根目录下需要一个keytab文件,因为我的jaas.conf看起来像这样: 我试图使属性成为一个相对路径,但运气不好。我尝试过: 所有这些都会导致异常,因此显然找不到keytab文件。 我已经搜索并阅读了文档,并为此撞到了墙上。有人能透露我实现这一目标所需的魔法咒语吗?

  • 我有一个,我希望它填满视图的整个宽度,但是如果它比大,它应该保持这个大小。我尝试使用,但它不能用于。

  • 另外一个使用相对布局的方式是对节点使用origin和offset属性来指定相对另外一个节点的位置。 [ Left ] -> [ Right ] { origin: Left; offset: 2,1; } +------+ | Left | +------+ | | +-------+ +------------> | Right |

  • 与 Polar Flow 应用配对 如果您已按照设置 Polar Verity Sense 章节中的说明通过手机完成 Polar Verity Sense 的设置,则 Polar Verity Sense 已与手机配对。 如果您使用电脑进行设置,并希望将 Polar Verity Sense 与 Polar Flow 应用配合使用,则需要在记录模式或游泳模式下使用传感器完成一次训练,然后才能将 P

  • 新的传感器只有与接收装置配对后才能接收数据。如需了解更多信息,请查阅接收装置或手机应用程式的用户指南。 为确保传感器与接收装置之间的良好连接,推荐您将设备保持在车把上的自行车固定装置上。

  • Bluetooth® 心率传感器必须与 A370 配对,这样它们才可一起正常工作。配对只需几秒钟,请确保 A370 仅接收来自传感器和设备的信号,并允许小组训练不受干扰。在进入活动或比赛之前,确保您已在家中进行过配对操作,以防止其他设备干扰。 Polar A370 健身追踪器与 Polar Bluetooth® 心率传感器 H6、H7、 H10 和 OH1 兼容。 将心率传感器与 A370 配对