无法同时居中textview和imageview

时间:2019-11-21 19:08:39

标签: android

我正在尝试使gridview中的元素居中,但是这样做存在一些问题。

我的列布局如下:

enter image description here

我希望它看起来像这样:

enter image description here

列布局代码:

<?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="horizontal" android:layout_width="match_parent"
        android:padding="10dp"
        android:gravity="center"
        android:layout_height="110dp">

        <ImageView
            android:id="@+id/iv_logo"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:gravity="center" />

        <TextView
            android:id="@+id/app_name"
            android:layout_width="100dp"
            android:layout_marginTop="55dp"
            android:layout_height="wrap_content"
            android:textColor="#ffffff"
            android:gravity="center"
            android:text="TextView" />

    </RelativeLayout>

我的表格视图:

    <GridView
    android:id="@+id/gvApps"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    android:columnWidth="90dp"
    android:gravity="center"
    android:horizontalSpacing="10dp"
    android:numColumns="3"
    android:stretchMode="spacingWidthUniform"
    android:verticalSpacing="10dp"
    tools:listitem="@layout/app_row"
    app:layout_constraintRight_toRightOf="parent"
    tools:layout_editor_absoluteX="1dp"
    tools:layout_editor_absoluteY="1dp" />

我需要更改我的代码吗?

1 个答案:

答案 0 :(得分:0)

尝试使用vertical和方向<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:padding="10dp" android:gravity="center" android:layout_height="110dp"> <ImageView android:id="@+id/iv_logo" android:layout_width="60dp" android:layout_height="60dp" android:layout_gravity="center" /> <TextView android:id="@+id/app_name" android:layout_width="100dp" android:layout_height="wrap_content" android:textColor="#ffffff" android:gravity="center" android:text="TextView" /> </LinearLayout> 进行以下操作:

RelativeLayout

如果您想使用<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:padding="10dp" android:gravity="center_vertical" android:layout_height="110dp"> <ImageView android:id="@+id/iv_logo" android:layout_width="60dp" android:layout_height="60dp" android:layout_centerHorizontal="true" /> <TextView android:layout_below="@+id/iv_logo" android:id="@+id/app_name" android:layout_width="100dp" android:layout_height="wrap_content" android:textColor="#ffffff" android:layout_centerHorizontal="true" android:text="TextView" /> </RelativeLayout> ,则应该像这样:

ConstraintLayout

您还可以使用<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" android:padding="10dp" android:layout_height="110dp"> <ImageView android:id="@+id/iv_logo" android:layout_width="60dp" android:layout_height="60dp" app:layout_constraintRight_toRightOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent"/> <TextView android:layout_below="@+id/iv_logo" android:id="@+id/app_name" android:layout_width="100dp" android:layout_height="wrap_content" android:textColor="#ffffff" app:layout_constraintTop_toBottomOf="@+id/iv_logo" app:layout_constraintRight_toRightOf="parent" app:layout_constraintLeft_toLeftOf="parent" android:text="TextView" /> </androidx.constraintlayout.widget.ConstraintLayout> 来实现它,如下所示:

new WebSocket('myDomain.com')