gpt4 book ai didi

android - 相对布局 : layout_marginLeft inconsistent behaviour

转载 作者:行者123 更新时间:2023-11-30 04:25:54 26 4
gpt4 key购买 nike

上下文: 我有一个小部件,它基本上由一个包装了一堆 TextView 的 RelativeLayout 组成。这是我希望小部件的外观,然后是 XML 布局代码:

Expected layout

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/alarm_widget_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/alarm_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="8:30"
android:textSize="40sp"
/>
<TextView
android:id="@+id/alarm_am_pm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/alarm_time"
android:layout_marginLeft="2dp"
android:layout_alignTop="@id/alarm_time"
android:textSize="18sp"
android:text="AM"
/>
<TextView
android:id="@+id/alarm_days"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@id/alarm_time"
android:textSize="16sp"
android:text="M T W T F S S"
/>
<TextView
android:id="@+id/toggle_indicator"
android:layout_height="8sp"
android:layout_width="80sp"
android:layout_below="@id/alarm_days"
android:layout_centerHorizontal="true"
android:background="@drawable/toggle_button_oval"
/>
</RelativeLayout>

问题:我对 layout_marginLeft 在以下情况下的不一致行为感到困惑:

  1. 当这些小部件垂直堆叠在 LinearLayout 中时,右上角的 AM/PM 文本需要 android:layout_marginLeft="15dp"才能像上图那样显示。
  2. 但是,当小部件堆叠在 2x2 TableLayout 中时,AM/PM 文本需要 android:layout_marginLeft="2dp"才能正确显示。

为什么我会看到这种不一致的行为? layout_marginLeft 使用什么作为它的“原点”?

最佳答案

由于您使用的是垂直 LinearLayout(orientation = vertical),android:layout_marginLeft 会将屏幕的最左侧作为原点,因此需要一个大的 dip 值 ~15。但是,如果您一直使用 orientation = horizo​​ntal,原点将是元素的末尾,就在您的 am_pm 之前,因此您需要一个较小的倾角值 ~2。相对和表格布局的情况类似。由于在使用RelativeLayout时,你提到了android:layout_toRightOf="@id/alarm_time",原点将是alarm_time的结束,因此需要较小的dip值。

关于android - 相对布局 : layout_marginLeft inconsistent behaviour,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8532549/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com