代码之家  ›  专栏  ›  技术社区  ›  Valeriu Seremet

布局按钮与背景相对应

  •  1
  • Valeriu Seremet  · 技术社区  · 6 年前

    在Android Studio中,我希望按钮的大小以及它们之间的距离随显示器的大小而变化。

    基本上,我有一个专门放置按钮的背景(我知道这是一个糟糕的做法),在不同的屏幕上,按钮与背景不匹配。

    我试图通过 ConstraintLayout 但是 match_constraint 使按钮的大小与容器一样大 margins 是静态的。

    我试过了 this answer to a similar question ,但工作不正常。

    simple schema as example

    1 回复  |  直到 6 年前
        1
  •  1
  •   kalabalik ahodder    6 年前

    我没能做到这一点 ConstraintLayout 任何一个具有百分比指导原则的链需要将其子级设置为 wrap_content . 因此,按钮的大小将保持不变,例如在横向和纵向模式下。所以我用了“空” View s在线性布局中。通过为每个元素、按钮和空视图指定权重,可以实现相对于屏幕宽度的按钮大小的效果。瞧

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">
    
        <View
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight=".1666" />
    
        <Button
            android:id="@+id/button1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight=".25"
            android:text="Button1" />
    
        <View
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight=".1666" />
    
        <Button
            android:id="@+id/button2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight=".25"
            android:text="Button2" />
    
        <View
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight=".1666" />
    </LinearLayout>
    

    enter image description here enter image description here