【问题标题】:MaterialButtonToggleGroup's child with same widthMaterialButtonToggleGroup 的子宽度相同
【发布时间】:2019-06-01 15:16:43
【问题描述】:

我想将MaterialButtonToggleGroup 与 2 个MaterialButton 一起使用。我想在MaterialButtonToggleGroup中以相同的宽度显示它们

如果我使用match_parent,那么只会显示一个按钮,如果我使用wrap_content,它们会显示在中间。

下面是当前输出

下面是我的代码:-

<com.google.android.material.button.MaterialButtonToggleGroup
        android:id="@+id/toggle_button_group"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="25dp"
        android:gravity="center"
        app:checkedButton="@id/btn_login"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:singleSelection="true">

        <com.google.android.material.button.MaterialButton
            android:id="@+id/btn_login"
            style="?attr/materialButtonOutlinedStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Login" />

        <com.google.android.material.button.MaterialButton
            android:id="@+id/btn_register"
            style="?attr/materialButtonOutlinedStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Register" />

    </com.google.android.material.button.MaterialButtonToggleGroup>```

Please help. Thanks

【问题讨论】:

    标签: android material-design android-togglebutton


    【解决方案1】:

    我自己刚遇到一个问题,起始版本1.1.0-beta01MaterialButtonToggleGroup 正在扩展LinearLayout,所以可以像这样设置按钮的相等宽度(假设默认为android:orientation="horizontal"):

    <com.google.android.material.button.MaterialButtonToggleGroup
        android:id="@+id/toggleButton"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
            <Button
                android:id="@+id/button1"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="match_parrent"
                android:text="Button 1"
                style="?attr/materialButtonOutlinedStyle"
                />
            <Button
                android:id="@+id/button2"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="match_parrent"
                android:text="Button 2"
                style="?attr/materialButtonOutlinedStyle"
                />
    </com.google.android.material.button.MaterialButtonToggleGroup>
    

    【讨论】:

      【解决方案2】:

      我找不到MaterialButtonToggleGroup 按钮组的自动宽度选项。您可以使用自定义值。

      <com.google.android.material.button.MaterialButtonToggl
          android:layout_margin="8dp"
          android:id="@+id/ToggleGroupBrother"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          app:singleSelection="true"
          app:checkedButton="@+id/ToggleButton0">
          <com.google.android.material.button.MaterialButton
              android:id="@+id/ToggleButton0"
              android:layout_width="50dp"
              android:layout_height="wrap_content"
              android:gravity="center"
              android:text="0"
              app:backgroundTint="@color/white"
              style="@style/MaterialButtonStyle"/>
          <com.google.android.material.button.MaterialButton
              android:id="@+id/ToggleButton1"
              android:layout_width="50dp"
              android:layout_height="wrap_content"
              android:text="1"
              app:backgroundTint="@color/white"
              style="@style/MaterialButtonStyle"/>
          <com.google.android.material.button.MaterialButton
              android:id="@+id/ToggleButton2"
              android:layout_width="50dp"
              android:layout_height="wrap_content"
              android:text="2"
              app:backgroundTint="@color/white"
              style="@style/MaterialButtonStyle"/>
      

      【讨论】:

        【解决方案3】:

        您可以像这样将两个按钮的宽度设置为最大绘制宽度:

                materialButton2.post(new Runnable() {
                            @Override
                            public void run() {
                                int maxWidth = Math.max(materialButton1.getWidth(), materialButton2.getWidth());
                                materialButton1.setWidth(maxWidth);
                                materialButton2.setWidth(maxWidth);
                            }
                        });
        

        【讨论】:

          猜你喜欢
          • 2010-09-08
          • 2021-02-09
          • 2020-01-28
          • 1970-01-01
          • 2017-07-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-03-11
          相关资源
          最近更新 更多