停止线性布局重叠

时间:2016-02-01 20:01:34

标签: android android-layout android-cardview

我目前遇到的问题是布局相互重叠,如下所示。 enter image description here

从未遇到过此问题,因为并且无法找到问题的原因。 文本目前正确定位,但似乎两个线性布局没有正确加权。

XML

grep -rnw '/home/******/' -e ".*/home/******/Downloads/idea-IC-143.1821.5/bin/idea.sh.*"

2 个答案:

答案 0 :(得分:1)

您发布的布局非常正确。 这就是我寻找的方式: enter image description here

这看起来不像XML的问题。

我只能猜测,你究竟出了什么问题,但是如果你将CardView的宽度设置为wrap_content,那么类似的效果可以归档(如果它的空间不够布局中CardView,所以请确保您不会在后面的代码中的某处执行此操作。因此,在代码中查找,这可能会更改CardView或其子项的布局属性。

另外,我建议您确保使用最新的CardView支持库。

P.S。

通过删除不必要的组件,您仍然可以略微改善您的布局:

<android.support.v7.widget.CardView
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/card_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    card_view:cardBackgroundColor="#777777"
    card_view:cardCornerRadius="0dp"
    card_view:cardElevation="3dp"
    card_view:cardUseCompatPadding="true">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="10">

        <ImageView
            android:id="@+id/thumbImageView"
            android:layout_width="0dp"
            android:layout_weight="3"
            android:layout_height="match_parent"/>
        <TableLayout
            android:id="@+id/tableLayout"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:stretchColumns="0,1,2"
            android:layout_weight="7"
            android:weightSum="6">

            <TableRow
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="3"
                android:textColor="#FFF"
                android:weightSum="3">
                <TextView
                    android:id="@+id/nameTextView"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:text="Name:"
                    android:textColor="#FFF" />
                <TextView
                    android:id="@+id/hpTextView"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:text="HP:"
                    android:textColor="#FFF" />
                <TextView
                    android:id="@+id/atkTextView"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:text="ATK:"
                    android:textColor="#FFF" />
            </TableRow>

            <TableRow
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="3"
                android:textColor="#FFF"
                android:weightSum="3">
                <TextView
                    android:id="@+id/typeTextView"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:text="Race:"
                    android:textColor="#FFF" />
                <TextView
                    android:id="@+id/defTextView"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:text="DEF"
                    android:textColor="#FFF" />
                <TextView
                    android:id="@+id/wisTextView"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:text="WIS"
                    android:textColor="#FFF" />
            </TableRow>
        </TableLayout>
    </LinearLayout>
</android.support.v7.widget.CardView>

我希望,这有帮助

答案 1 :(得分:0)

如果您遇到重叠问题,可以使用属性来修复ImageView

android:scaleType="fitXY"

建议 ::当您在不同的设备上进行测试时,您必须制作不同尺寸的图片。

所以你的布局如下

<?xml version="1.0" encoding="utf-8"?>
<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:id="@+id/card_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    card_view:cardBackgroundColor="#777777"
    card_view:cardCornerRadius="0dp"
    card_view:cardElevation="3dp"
    card_view:cardUseCompatPadding="true">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="10">

        <ImageView
            android:id="@+id/thumbImageView"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="3"
            android:background="@drawable/soul_bg"
            android:scaleType="fitXY" />

        <TableLayout
            android:id="@+id/tableLayout"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="7"
            android:stretchColumns="0,1,2"
            android:weightSum="6">

            <TableRow
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="3"
                android:textColor="#FFF"
                android:weightSum="3">

                <TextView
                    android:id="@+id/nameTextView"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:text="Name:"
                    android:textColor="#FFF" />

                <TextView
                    android:id="@+id/hpTextView"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:text="HP:"
                    android:textColor="#FFF" />

                <TextView
                    android:id="@+id/atkTextView"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:text="ATK:"
                    android:textColor="#FFF" />
            </TableRow>

            <TableRow
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="3"
                android:textColor="#FFF"
                android:weightSum="3">

                <TextView
                    android:id="@+id/typeTextView"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:text="Race:"
                    android:textColor="#FFF" />

                <TextView
                    android:id="@+id/defTextView"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:text="DEF"
                    android:textColor="#FFF" />

                <TextView
                    android:id="@+id/wisTextView"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:text="WIS"
                    android:textColor="#FFF" />
            </TableRow>
        </TableLayout>
    </LinearLayout>
</android.support.v7.widget.CardView>