【问题标题】:Aligning columns in gridlayout对齐网格布局中的列
【发布时间】:2016-07-06 16:52:25
【问题描述】:
Android Studio 2.1.1

这就是我在下面的当前 xml 中所拥有的。

但是,这是我的预期。

我想对齐图标旁边的“LAST SALE $230”TextView。但是,“LAST SALE ..”在第 2 列,图标在第 1 列。

在 GridLayout 中可以这样做吗?

非常感谢您的任何建议,

我正在使用 gridlayout,这是我的 xml

android.support.v7.widget.GridLayout
    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="wrap_content"
    app:columnCount="3"
    app:rowCount="5">

    <!-- Row 1 -->
    <ImageView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_marginStart="8dp"
        android:id="@+id/ivOptions"
        android:src="@drawable/ic_remove_circle_outline_black_24dp"/>

    <TextView
        android:id="@+id/tvSize"
        app:layout_columnSpan="2"
        android:text="Size 8.0/ Tubular Doom Primeknit Core Black"
        android:textSize="14sp"
        android:textColor="@android:color/black"
        android:fontFamily="sans-serif-condensed"/>

    <!-- Row 2 -->
    <TextView
        android:id="@+id/tvPartNumber"
        app:layout_column="1"
        app:layout_columnSpan="2"
        android:text="S74921"
        android:textSize="12sp"
        app:layout_row="1" />

    <!-- Row 3 -->
    <ImageView
        android:id="@+id/ivSneaker"
        android:layout_width="80dp"
        android:layout_height="50dp"
        app:layout_gravity="center"
        app:layout_columnWeight="1"
        android:src="@drawable/sneakers_200"
        android:scaleType="fitXY"/>

    <include
        android:id="@+id/top_offers"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        app:layout_gravity="center"
        layout="@layout/top_offers"/>

    <include
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        app:layout_gravity="center"
        app:layout_columnWeight="1"
        layout="@layout/offers_button"/>

    <!-- Row 4 -->
    <ImageView
        android:layout_width="wrap_content"
        app:layout_column="1"
        android:layout_marginEnd="8dp"
        android:src="@drawable/ic_trending_down_black_24dp"/>

    <TextView
        android:id="@+id/tvLastSale"
        app:layout_gravity="center_vertical"
        android:text="LAST SALE $230"/>
</android.support.v7.widget.GridLayout>

【问题讨论】:

    标签: android android-layout android-gridlayout


    【解决方案1】:

    通过使用图标和文本创建一个新的线性布局来设法做到这一点。然后将其包含在第 1 列中:

     <!-- Row 4 -->
     <include
        app:layout_column="1"
        layout="@layout/last_sale_row"/>
    

    【讨论】: