在CardView中并排对齐两个LinearLayout [英] Aligning Two LinearLayout Side By Side Inside a CardView

查看:163
本文介绍了在CardView中并排对齐两个LinearLayout的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图并排对齐两个 TextView LinearLayout 以便到达此cardView:

I am trying to align two TextViews OR LinearLayouts side by side in order to reach this cardView:

为了解决这种情况,我使用了 layout_gravity layout_weight 属性,但是没有运气.

I have used layout_gravity and layout_weight attributes inorder to solve this situation, but with no luck.

我愿意接受可能会实现日志目标的任何其他建议,因为我可以使用 Activity 中的 ListAdapter BaseAdapter 动态生成卡片视图>代码.

I am open to any other suggestions that may accomplish my goal as log as I can generate cardview dynamicaly using BaseAdapter with ListView in the Activity Code.

我正在寻找XML解决方案.

I am looking for XML solution.

这是我的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以获得更好的性能.太多的嵌套布局权重将迅速加起来并造成性能问题.

For the part on the right you can use a TableLayout. Try to play with nesting layouts or switch to ConstraintLayout for better performance. Too many nested layout weights will quickly add up and create performance issues.

您可以从下面提供的XML开始微调.我从CardView中删除了layout_weight,如果需要,请重新添加.

You can start fine tuning from the XML provided below. I removed the layout_weight from the CardView, if needed, add it back.

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

In preview it looks like this:

布局XML:

Layout 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>

这篇关于在CardView中并排对齐两个LinearLayout的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆