在CardView内并排对齐两个LinearLayout

时间:2016-11-01 12:04:37

标签: android xml listview xamarin.android android-cardview

我正在尝试并排两个 TextView 的OR LinearLayout 以便到达此cardView: enter image description here

我已经使用 layout_gravity layout_weight 属性来解决这种情况,但没有运气。

我愿意接受任何可能达到我的目标的建议,因为我可以在活动中使用 BaseAdapter ListView 动态生成cardview动态代码。

我正在寻找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>

非常感谢。

1 个答案:

答案 0 :(得分:2)

对于右侧的部分,您可以使用TableLayout。 尝试使用嵌套布局或切换到ConstraintLayout以获得更好的性能。嵌套布局权重太多会很快累加并产生性能问题。

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

在预览中,它看起来像这样:

Layout preview

布局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>