从右到左而不是从左到右开始按钮

Start Button from Right to Left Instead of Left to Right

我正在尝试使 LinearLayout 中的 Button 从右侧开始并设置 Button 5dp 从右边缘开始LinearLayout,按钮左侧显示 TextView。目前,它只允许从线性布局的 "left" 边缘设置按钮。我尝试了各种方法,但似乎没有任何效果。

<LinearLayout
    android:id="@+id/remote_button_layout"
    android:layout_width="match_parent"
    android:layout_height="55dp"
    android:layout_marginStart="20dp"
    android:layout_marginEnd="20dp"
    android:layout_marginTop="30dp"
    android:background="@drawable/btn_remote_button"
    android:orientation="horizontal">

    <TextView
        android:text="Example Text"
        android:textSize="10sp"
        android:fontFamily="@font/mmedium"
        android:textAllCaps="false"
        android:layout_width="125dp"
        android:layout_height="match_parent"
        android:gravity="center"
        android:textColor="@android:color/secondary_text_light"/>

    <Button
        android:id="@+id/btn_remote_button"
        style="@style/Widget.AppCompat.Button.Borderless"
        android:layout_width="40dp"
        android:layout_height="match_parent"
        android:layout_marginEnd="5dp"
        android:background="@drawable/btn_remote_button"
        android:drawableStart="@drawable/logo"
        app:layout_constraintHorizontal_bias="1.0" />

</LinearLayout>

您可以将 android:layout_weight=1 参数设置为 TextView

在您的 xml 中使用 layoutGravity 标签作为(右,左)

您必须在布局中添加 android:gravity="right"。所以所有的内部小部件都将从右到左的方式设置。如下所示。

<LinearLayout
                android:id="@+id/remote_button_layout"
                android:layout_width="match_parent"
                android:layout_height="55dp"
                android:layout_marginStart="20dp"
                android:layout_marginEnd="20dp"
                android:layout_marginTop="30dp"
                android:gravity="right
                android:background="@drawable/btn_remote_button"
                android:orientation="horizontal">

使用这个android:layout_gravity作为(左,右)你可以参考这个link What is the difference between gravity and layout_gravity in Android?

在您的情况下,您只需在 LinearLayout 中更改添加 android:gravity="right" 属性即可。

  <LinearLayout
      android:gravity="right"

之前:
之后:

您还可以考虑使用 MaterialButton 添加文本和图标来做一些不同的事情。

    <com.google.android.material.button.MaterialButton
        style="@style/Widget.MaterialComponents.Button.Icon"
        app:icon="@drawable/..."
        app:iconGravity="end"
        android:text="@string/..."/>