在所有设备的同一位置显示元素

Display elements in the same place for all devices

我正在尝试将项目移动到底部中间,我希望它在所有设备上都位于底部中间。我需要在 middel 上的 imagviews 上方和下方添加文本。抱歉,这个问题很琐碎。

这是我在 Android Studio 中的代码。

 <?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:gravity="center"
    android:orientation="horizontal"
    android:padding="16dp">
    
    <ImageView
        android:id="@+id/img_instagram"
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:layout_centerInParent="true"
        android:src="@drawable/ic_instagram" />

    <ImageView
        android:id="@+id/img_vk"
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:layout_centerInParent="true"
        android:layout_marginStart="8dp"
        android:src="@drawable/ic_vk_crug" />

    <ImageView
        android:id="@+id/gmail"
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:layout_centerInParent="true"
        android:layout_marginStart="8dp"
        android:src="@drawable/ic_icons8_gmail" />

</LinearLayout>

尝试用

设置两个gravity
android:gravity="center_horizontal|bottom"

顺便说一句。 layout_centerInParentRelativeLayout 参数,在您的代码中是 no-op,您可以安全地删除所有出现的

添加文本比较复杂,因为您使用 LinearLayout 作为根用户。您应该切换到 RelativeLayoutConstraintLayout

<?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_horizontal|bottom"
        android:padding="16dp">
    
        <LinearLayout
            android:id="@+id/llInstagram"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:orientation="vertical">
    
            <TextView
                android:id="@+id/tvInstagram"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text="Instagram">
    
            </TextView>
    
            <ImageView
                android:id="@+id/img_instagram"
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:src="@mipmap/ic_launcher" />
        </LinearLayout>
    
        <LinearLayout
            android:id="@+id/llVK"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/llInstagram"
            android:orientation="vertical">
    
            <TextView
                android:id="@+id/tv_vk"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text="VK">
    
            </TextView>
    
            <ImageView
                android:id="@+id/img_vk"
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:layout_marginStart="8dp"
                android:src="@mipmap/ic_launcher" />
    
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/llVK"
            android:orientation="vertical">
    
            <TextView
                android:id="@+id/tvgmail"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text="Gmail">
    
            </TextView>
    
            <ImageView
                android:id="@+id/gmail"
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:layout_marginStart="8dp"
                android:src="@mipmap/ic_launcher" />
    
        </LinearLayout>
    
    </RelativeLayout>