В настоящее время у меня проблема, когда макеты перекрывают друг друга, как показано ниже. введите описание изображения здесь

Никогда не было этой проблемы, потому что и не могу найти причину проблемы. Текст в настоящее время расположен правильно, но кажется, что два линейных макета неправильно взвешены.

XML

<?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:layout_gravity="center_horizontal"
        android:gravity="center_vertical|center_horizontal"
        android:orientation="horizontal"
        android:weightSum="10">

        <LinearLayout
            android:layout_width="0dip"
            android:layout_height="match_parent"
            android:layout_weight="3">

            <ImageView
                android:id="@+id/thumbImageView"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/soul_bg" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="0dip"
            android:layout_height="match_parent"
            android:layout_weight="7">

            <TableLayout
                android:id="@+id/tableLayout"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                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>
    </LinearLayout>
</android.support.v7.widget.CardView>
1
M0rty 1 Фев 2016 в 23:01

2 ответа

Лучший ответ

Макет, который вы разместили, довольно правильный. Вот как это выглядит для меня: введите описание изображения здесь

Здесь не похоже на проблему с XML.

Я могу только догадываться, что именно у вас пошло не так, но аналогичный эффект можно сохранить в архиве, если вы установите ширину CardView на wrap_content (& amp; если недостаточно места для {{X2 }} в макете), поэтому убедитесь, что вы не делаете этого где-то в коде. Поэтому ищите что-нибудь в коде , что может изменить свойство макета 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
Konstantin Loginov 1 Фев 2016 в 22:11

Если у вас есть проблема с перекрытием, вы можете использовать свойство для исправления 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>
0
Amit Vaghela 2 Фев 2016 в 04:09