根据设备的屏幕尺寸,使项目之间的边距可缩放并具有相同的值

时间:2018-09-23 16:18:43

标签: android android-linearlayout margin

我的应用程序中有7个呈 oval 形状的ToggleButton(如工作日-参见AOSP时钟应用程序),我很想实现它们之间的余量,该余量将无处不在,并且ToggleButtons将填充水平的整体视图。更公平地说,我正在寻找类似android:layout_weight的东西,而不是缩放项目的宽度(因为其形状)来缩放它们之间的边距。

我的ToggleButtons的代码:

<LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="1dp"
                android:layout_marginRight="16dp"
                android:layout_marginLeft="16dp"
                android:layout_marginTop="1dp"
                android:background="?android:attr/selectableItemBackground"
                android:orientation="horizontal">

            <ToggleButton
                android:id="@+id/monday"
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:textOff="M"
                android:textOn="M"
                android:layout_marginLeft="5sp"
                android:background="@drawable/round_button"
                android:textSize="15sp"
                android:layout_marginBottom="20dp"
                android:layout_marginTop="20dp"
                />
                <ToggleButton
                    android:id="@+id/tuesday"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:textOff="T"
                    android:textOn="T"
                    android:background="@drawable/round_button"
                    android:textSize="15sp"
                    android:layout_marginBottom="20dp"
                    android:layout_marginTop="20dp"/>
                <ToggleButton
                    android:id="@+id/wednesday"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:textOff="W"
                    android:textOn="W"
                    android:background="@drawable/round_button"
                    android:textSize="15sp"
                    android:layout_marginBottom="20dp"
                    android:layout_marginTop="20dp"/>
                <ToggleButton
                    android:id="@+id/thursday"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:textOff="T"
                    android:textOn="T"
                    android:background="@drawable/round_button"
                    android:textSize="15sp"
                    android:layout_marginBottom="20dp"
                    android:layout_marginTop="20dp"/>
                <ToggleButton
                    android:id="@+id/friday"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:textOff="F"
                    android:textOn="F"
                    android:background="@drawable/round_button"
                    android:textSize="15sp"
                    android:layout_marginBottom="20dp"
                    android:layout_marginTop="20dp"/>

                <ToggleButton
                    android:id="@+id/saturday"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:layout_marginBottom="20dp"
                    android:layout_marginTop="20dp"
                    android:background="@drawable/round_button"
                    android:textOff="S"
                    android:textOn="S"
                    android:textSize="15sp" />
                <ToggleButton
                    android:id="@+id/sunday"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:textOff="S"
                    android:textOn="S"
                    android:background="@drawable/round_button"
                    android:textSize="15sp"
                    android:layout_marginBottom="20dp"
                    android:layout_marginTop="20dp"
                    android:layout_marginRight="5sp"/>

            </LinearLayout>

1 个答案:

答案 0 :(得分:1)

最简单的方法是使用all: main.c @gcc -I$(INCLUDE) main.c -o test.out $(CFLAGS) $(LDFLAGS) 作为父视图组,然后在视图之间创建ConstraintLayout水平链:

spread_inside

第一个视图上的<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <View android:id="@+id/one" android:layout_width="48dp" android:layout_height="48dp" android:background="#caf" app:layout_constraintHorizontal_chainStyle="spread_inside" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toStartOf="@+id/two"/> <View android:id="@+id/two" android:layout_width="48dp" android:layout_height="48dp" android:background="#caf" app:layout_constraintStart_toEndOf="@+id/one" app:layout_constraintEnd_toStartOf="@+id/three"/> <View android:id="@+id/three" android:layout_width="48dp" android:layout_height="48dp" android:background="#caf" app:layout_constraintStart_toEndOf="@+id/two" app:layout_constraintEnd_toStartOf="@+id/four"/> <View android:id="@+id/four" android:layout_width="48dp" android:layout_height="48dp" android:background="#caf" app:layout_constraintStart_toEndOf="@+id/three" app:layout_constraintEnd_toStartOf="@+id/five"/> <View android:id="@+id/five" android:layout_width="48dp" android:layout_height="48dp" android:background="#caf" app:layout_constraintStart_toEndOf="@+id/four" app:layout_constraintEnd_toStartOf="@+id/six"/> <View android:id="@+id/six" android:layout_width="48dp" android:layout_height="48dp" android:background="#caf" app:layout_constraintStart_toEndOf="@+id/five" app:layout_constraintEnd_toStartOf="@+id/seven"/> <View android:id="@+id/seven" android:layout_width="48dp" android:layout_height="48dp" android:background="#caf" app:layout_constraintStart_toEndOf="@+id/six" app:layout_constraintEnd_toEndOf="parent"/> </android.support.constraint.ConstraintLayout> 属性是此处的关键;它使空间仅在视图之间平均分配。您也可以尝试其他值来查看最喜欢的值。

enter image description here

enter image description here

如果您不想使用app:layout_constraintHorizontal_chainStyle,另一种方法是使用ConstraintLayout,但在每个主视图之间添加一个LinearLayout视图,并赋予Space视图的权重:

Space