android - 布局中均匀分布的按钮

标签 android xml layout button

我正在尝试制作 4 个按钮,在 Android 的纵向 View 中均匀分布。

空间应根据屏幕大小按比例放大和缩小,每个按钮和边框之间的间距应相等。

我尝试使用线性布局、权重和布局引力,但似乎无法使按钮垂直居中。

这是Android布局的错误吗?更有可能只是我。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="1"
android:layout_gravity="center"
>
<Button
android:id="@+id/btn_f"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="btn_f"
>
</Button>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_weight="1"
android:layout_gravity="center"
>
<Button
android:id="@+id/btn_b"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="btn_b"
>
</Button>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="1"
android:layout_gravity="center"
>
<Button
android:id="@+id/btn_a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="btn_a"
>
</Button>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="1"
android:layout_gravity="center"
>
<Button
android:id="@+id/settings"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Settings"
>
</Button>
</LinearLayout>
</LinearLayout>

最佳答案

尝试这样的事情:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    >
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:orientation="vertical"
        android:layout_weight="1"
        android:gravity="center"
        >
        <Button
            android:id="@+id/btn_f"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="btn_f"
            />
    </LinearLayout>
    <!-- etc -->
</LinearLayout>

原始布局的变化是每个内部 LinearLayout 的高度为零,重力(不是 layout_gravity)为中心。这应该会导致所有内部线性布局具有相同的高度,平均分割父级高度,而不会拉伸(stretch)按钮本身。

关于android - 布局中均匀分布的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4782548/

相关文章:

android - 如何加快calabash-android的查询速度

xml - vba excel : need to load an xml file and write specific values (got from current) excel then save it

java - 解析java xml文件中的字符串

layout - 添加小部件后 QScrollArea 不会滚动到最大

java - 如何在SQL数据库中存储Html文件目录?

Android Studio 卡在 "Gradle: resolve dependencies ' _debugCompile '"or ' detachedConfiguration1'

java - 安卓:ActivityNotFoundException

c# - 如何重定向 .nuget 文件夹? nuget包与SDK nuget包的区别

android - 理解weight和layout_weight,layout_weight越大,在layout中缩小的越多。

android - 当标题 View 设置为 View.GONE 时,ListView 不收缩