如何让LinearLayout中的TextView(标题)匹配对应的ImageButtonobjects?

How to get TextView (titles) in a LinearLayout to match corresponding ImageButton objects?

我很难让我的布局正常工作,但现在我已经接近了,除了将标题设置为 2 ImageButton objects 以匹配屏幕上的图像。我需要将 ImageButton 的标题放在图片的右侧。

更容易形象化,下面是两张图片。第一个是现在的样子,第二个是我希望它们看起来的样子。我已经为主要部分的背景着色,这样您就可以更轻松地将 xml 小部件连接到设备上看到的内容。一旦我做对了,我将删除背景属性。

现在的情况:

我需要的东西看起来像什么。注意两个按钮图像右侧的文本对齐方式:

xml布局:

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight=".35"
        android:background="@color/LightGreen"
        >

        <Space
            android:layout_width="match_parent"
            android:layout_weight=".2"
            android:layout_height="0dp"/>

        <ImageView
            android:id="@+id/imgViewLogo"
            android:src="@drawable/logo"
            android:layout_margin="10dp"
            android:layout_width="90dp"
            android:layout_height="0dp"
            android:gravity="center"
            android:layout_gravity="center_horizontal"
            android:adjustViewBounds="true"
            android:scaleType="fitCenter"
            android:layout_weight=".55"
             />

        <Space
            android:layout_width="match_parent"
            android:layout_height="10dp"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="Temporary Title for Logo"
            android:id="@+id/tvAILLogo"
            android:layout_margin="2dp"
            android:textSize="@dimen/font_size22"
            android:textStyle="bold"
            android:gravity="center"
            android:layout_gravity="center_horizontal"
            android:layout_weight=".25"
            />

    </LinearLayout>

    <Space
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight=".1"
        />

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight=".4"
         >

        <LinearLayout
            android:orientation="vertical"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight=".5"
            android:background="@color/LightCoral"
            >

            <ImageButton
                android:id="@+id/imgBtn1"
                android:src="@drawable/imgbtn1"
                android:layout_width="90dp"
                android:layout_height="95dp"
                android:background="@null"
                android:layout_gravity="right"
                android:adjustViewBounds="true"
                android:scaleType="fitCenter"
                />

            <Space
                android:layout_width="match_parent"
                android:layout_height="15dp"
                />

            <ImageButton
                android:id="@+id/imgBtn2"
                android:src="@drawable/imgbtn2"
                android:layout_width="90dp"
                android:layout_height="95dp"
                android:background="@null"
                android:layout_gravity="right"
                android:adjustViewBounds="true"
                android:scaleType="fitCenter"
                />

        </LinearLayout>

        <LinearLayout
            android:orientation="vertical"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight=".5"
            android:background="@color/LightYellow"
            >

            <TextView
                android:id="@+id/tvGradeAssessment"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:text="Title1"
                android:textColor="@color/white"
                android:textSize="@dimen/font_size24"
                android:paddingLeft="10dp"
                android:layout_gravity="left"
                android:background="@color/red"
                />

            <Space
                android:layout_width="match_parent"
                android:layout_height="15dp"
                />

            <TextView
                android:id="@+id/tvPrivateData"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:text="Title2"
                android:textColor="@color/white"
                android:textSize="@dimen/font_size24"
                android:paddingLeft="10dp"
                android:background="@color/green"
                android:layout_gravity="left"
                />

        </LinearLayout>

    </LinearLayout>

    <!-- filler -->
    <Space
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight=".05"
        />

    <TextView
        android:id="@+id/tvVersionNumber"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:text="[Version number]"
        android:layout_gravity="bottom"
        android:paddingLeft="15dp"
        android:layout_weight=".1"
        android:textSize="20sp"
        android:background="@color/LightGrey"
        />


</LinearLayout>

将文本视图的高度设置为 android:layout_height="95dp" 以匹配 ImageView 的高度并设置 android:gravity="center_vertical"

恕我直言,你应该尝试使用另一种类型的布局 - 你有太多嵌套 LinearLayouts

在下面使用 xml 两个文本视图(标题一和二)

    android:text="Title1"
    android:layout_weight=".5f"
    android:gravity="left|center_vertical"

    android:text="Title2"
    android:layout_weight=".5f"
    android:gravity="left|center_vertical"`