Android:填充在 RelativeLayout 中不起作用

Android: Padding not working in RelativeLayout

我想在描述文本和开关之间进行填充,但 paddingRight 属性 不起作用。为什么?

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/layoutLayout"
    android:layout_below="@+id/layoutHeader"
    android:layout_marginTop="15dp"
    android:layout_marginLeft="15dp"
    android:layout_marginRight="15dp">

    <Switch
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/widgetShortSwitch"
        android:layout_centerVertical="true"
        android:layout_alignParentRight="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="This is a long description text that should not overlay."
        android:textColor="#000000"
        android:paddingRight="15dp"
        android:id="@+id/widgetShortTextView"
        android:layout_centerVertical="true"
        android:layout_alignParentLeft="true"
        />
</RelativeLayout>

试试这个...

<?xml version="1.0" encoding="utf-8"?>

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/layoutLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/layoutHeader"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:layout_marginTop="15dp"
        android:weightSum="1">

        <TextView
            android:id="@+id/widgetShortTextView"
            android:layout_width="0"
            android:layout_height="wrap_content"
            android:paddingBottom="5dp"
            android:layout_weight="0.85"
            android:paddingRight="15dp"
            android:text="This is a long description text that should not overlay."
            android:textColor="#000000" />

        <Switch
            android:id="@+id/widgetShortSwitch"
            android:layout_width="0"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_weight="0.15" />
    </LinearLayout>

你需要告诉RelativeLayout,你的TextView留给了你的Switch。 您还需要将您的 TextView 设置为 alignParentLeft,以便它从左侧开始。

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/layoutLayout"
    android:layout_below="@+id/layoutHeader"
    android:layout_marginTop="15dp"
    android:layout_marginLeft="15dp"
    android:layout_marginRight="15dp">

    <Switch
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/widgetShortSwitch"
        android:layout_centerVertical="true"
        android:layout_alignParentRight="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="This is a long description text that should not overlay."
        android:textColor="#000000"
        android:paddingRight="15dp"
        android:id="@+id/widgetShortTextView"
        android:layout_centerVertical="true"
        android:layout_alignParentLeft="true"
        android:layout_toLeftOf="@id/widgetShortSwitch"
        android:layout_alignParentLeft="true"
        />
</RelativeLayout>