在 CardView 中并排对齐两个 LinearLayout

Aligning Two LinearLayout Side By Side Inside a CardView

我试图并排对齐两个 TextViews 或 LinearLayouts 以到达此 cardView:

我使用了 layout_gravitylayout_weight 属性来解决这种情况,但没有成功.

我愿意接受任何其他可能实现我的目标的建议,因为我可以使用 BaseAdapterListView 动态生成 cardview Activity 代码。

我正在寻找 XML 解决方案。

这是我的 xml 代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:cardview="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center_horizontal"
    android:padding="5dp">
  <android.support.v7.widget.CardView
      xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:card_view="http://schemas.android.com/apk/res-auto"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:layout_margin="5dp"
      card_view:cardCornerRadius="5sp"
      card_view:cardElevation="5sp"
      card_view:contentPadding="16dp"
      android:orientation="horizontal"
      android:layout_weight="2">
    <LinearLayout
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:orientation="horizontal"
      android:layout_weight="2">
  <LinearLayout
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:orientation="vertical"
      android:layout_gravity="left"
      android:gravity="left"
      android:layout_weight="1">
    <TextView
      style="@style/Base.TextAppearance.AppCompat.Headline"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:textStyle="bold"
      android:textSize="16dp" 
      android:textColor="#ec1c24"
      android:text="Model Name" />
    <TextView
      style="@style/Base.TextAppearance.AppCompat.Body1"
      android:id="@+id/plc_ModelName"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:textStyle="bold"
      android:textSize="36dp"
      android:textColor="#666666"/>
  </LinearLayout>
  <LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_gravity="right"
    android:gravity="right"
    android:layout_weight="1">
  <TextView
      android:id="@+id/plc_localIp"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:textSize="14dp" />

  <TextView
      android:id="@+id/plc_machineType"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:textStyle="bold"
      android:textSize="16dp" />

      <TextView
        android:id="@+id/plc_ModelId"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textStyle="bold"
        android:textSize="16dp" />

      <TextView
        android:id="@+id/plc_Version"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textStyle="bold"
        android:textSize="16dp" />
    </LinearLayout>
    </LinearLayout>
      </android.support.v7.widget.CardView>
</LinearLayout>

非常感谢。

右边的部分可以使用TableLayout。 尝试使用嵌套布局或切换到 ConstraintLayout 以获得更好的性能。过多的嵌套布局权重会迅速累加并产生性能问题。

您可以从下面提供的 XML 开始微调。我从 CardView 中删除了 layout_weight,如果需要,将其添加回来。

在预览中看起来像这样:

布局XML:

    <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:orientation="horizontal"
        card_view:cardCornerRadius="5sp"
        card_view:cardElevation="5sp"
        card_view:contentPadding="16dp">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:gravity="center_vertical"
            android:orientation="horizontal">

            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:gravity="center_vertical"
                android:orientation="vertical">

                <TextView
                    style="@style/Base.TextAppearance.AppCompat.Headline"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Model Name"
                    android:textColor="#ec1c24"
                    android:textSize="16dp"
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/plc_ModelName"
                    style="@style/Base.TextAppearance.AppCompat.Body1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textColor="#666666"
                    android:textSize="36dp"
                    android:textStyle="bold"
                    tools:text="T-Max" />
            </LinearLayout>

            <TableLayout
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1">

                <TableRow>

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_margin="3dp"
                        android:text="Model ID:"
                        android:textColor="#ec1c24"
                        android:textSize="14dp"
                        android:textStyle="bold" />

                    <TextView
                        android:id="@+id/plc_ModelId"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_margin="3dp"
                        android:textSize="14dp"
                        tools:text="12345678" />
                </TableRow>

                <TableRow>

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_margin="3dp"
                        android:text="IP:"
                        android:textColor="#ec1c24"
                        android:textSize="14dp"
                        android:textStyle="bold" />

                    <TextView
                        android:id="@+id/plc_localIp"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_margin="3dp"
                        android:textSize="14dp"
                        tools:text="192.168.0.1" />
                </TableRow>

                <TableRow>

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_margin="3dp"
                        android:text="BS Version:"
                        android:textColor="#ec1c24"
                        android:textSize="14dp"
                        android:textStyle="bold" />

                    <TextView
                        android:id="@+id/plc_Version"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_margin="3dp"
                        android:textSize="14dp"
                        tools:text="3.0.2.111" />
                </TableRow>

            </TableLayout>

        </LinearLayout>
    </android.support.v7.widget.CardView>
</LinearLayout>