【问题标题】:TextView below ToggleButton inside RadioGroupRadioGroup 内的 ToggleButton 下面的 TextView
【发布时间】:2018-01-28 06:03:06
【问题描述】:

正如标题所说,我需要将ToggleButton 下方的文本对齐,这些文本位于RadioGroup 下方。

我想要每个圆圈下方的状态文本。我尝试了 RelativeLayout 等的组合,但没有成功。

这是我的布局部分:

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:orientation="horizontal"
        android:paddingBottom="10dp"
        android:paddingLeft="10dp"
        android:paddingTop="10dp">

        <RadioGroup
            android:id="@+id/toggleGroup"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal">


            <ToggleButton
                android:id="@+id/toggleOnlineStatus"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
                android:background="@drawable/style_toggle_button"
                android:checked="true"
                android:textOff=""
                android:textOn="" />

            <TextView
                android:id="@+id/tvOnline"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/toggleOnlineStatus"
                android:layout_centerHorizontal="true"
                android:text="Away" />

            <ToggleButton
                android:id="@+id/toggleAwayStatus"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
                android:background="@drawable/style_toggle_button"
                android:textOff=""
                android:textOn="" />

            <TextView
                android:id="@+id/tvAway"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal"
                android:text="Away" />

            <ToggleButton
                android:id="@+id/toggleDNDStatus"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
                android:background="@drawable/style_toggle_button"
                android:textOff=""
                android:textOn="" />

            <TextView
                android:id="@+id/tvDND"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="DND" />

            <ToggleButton
                android:id="@+id/toggleXAStatus"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
                android:background="@drawable/style_toggle_button"
                android:textOff=""
                android:textOn="" />

            <TextView
                android:id="@+id/tvXA"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="XA" />


        </RadioGroup>


    </LinearLayout>

【问题讨论】:

    标签: android android-layout togglebutton radio-group


    【解决方案1】:

    您可以在ToggleButton 元素中使用android:drawableTop 属性:

            <ToggleButton
                android:id="@+id/toggleOnlineStatus"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
                android:drawableTop="@drawable/style_toggle_button"
                android:checked="true"
                android:textOff="Online"
                android:textOn="Online" />
    

    【讨论】:

      【解决方案2】:

      您可以考虑使用如下布局,而不是在 RadioGroup 中添加 TextView 小部件,方向为水平方向。

      看看这个例子,看看它是否是你要找的。​​p>

      <?xml version="1.0" encoding="utf-8"?>
      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto"
      xmlns:tools="http://schemas.android.com/tools"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_gravity="center_horizontal"
      android:orientation="vertical"
      android:paddingBottom="10dp"
      android:paddingLeft="10dp"
      android:paddingTop="10dp">
      
      
          <RadioGroup
              android:id="@+id/toggleGroup"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:orientation="horizontal">
      
              <ToggleButton
                  android:id="@+id/toggleOnlineStatus"
                  android:layout_width="50dp"
                  android:layout_height="wrap_content"
                  android:background="@drawable/add"
                  android:checked="true"
                  android:layout_margin="12dp"
                  android:textOff=""
                  android:textOn="" />
      
              <ToggleButton
                  android:id="@+id/toggleAwayStatus"
                  android:layout_width="50dp"
                  android:layout_height="wrap_content"
                  android:background="@drawable/add"
                  android:layout_margin="12dp"
                  android:textOff=""
                  android:textOn="" />
      
              <ToggleButton
                  android:id="@+id/toggleDNDStatus"
                  android:layout_width="50dp"
                  android:layout_height="wrap_content"
                  android:background="@drawable/add"
                  android:layout_margin="12dp"
                  android:textOff=""
                  android:textOn="" />
      
              <ToggleButton
                  android:id="@+id/toggleXAStatus"
                  android:layout_width="50dp"
                  android:layout_height="wrap_content"
                  android:background="@drawable/add"
                  android:layout_margin="12dp"
                  android:textOff=""
                  android:textOn="" />
      
          </RadioGroup>
      
          <LinearLayout
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:orientation="horizontal">
      
              <TextView
                  android:id="@+id/tvOnline"
                  android:layout_width="0dp"
                  android:layout_height="wrap_content"
                  android:layout_weight="1"
                  android:gravity="center"
                  android:text="Online" />
      
              <TextView
                  android:id="@+id/tvAway"
                  android:layout_width="0dp"
                  android:layout_height="wrap_content"
                  android:layout_weight="1"
                  android:gravity="center"
                  android:text="Away" />
      
              <TextView
                  android:id="@+id/tvDND"
                  android:layout_width="0dp"
                  android:layout_height="wrap_content"
                  android:layout_weight="1"
                  android:gravity="center"
                  android:text="Away" />
      
              <TextView
                  android:id="@+id/tvXA"
                  android:layout_width="0dp"
                  android:layout_height="wrap_content"
                  android:layout_weight="1"
                  android:gravity="center"
                  android:text="Away" />
      
          </LinearLayout>
      

      这个显示在下面。

      【讨论】:

      • 第二个LinearLayout 在第一个里面吗?如果是,则在右侧显示TextView
      • 检查您的父线性布局,我将方向更改为垂直而不是您使用的水平
      • 太棒了。这样可行。不过,必须做一些填充以将文本与按钮对齐。谢谢!
      猜你喜欢
      • 1970-01-01
      • 2012-05-05
      • 1970-01-01
      • 1970-01-01
      • 2012-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多