Выдача макета вида карты и цвета разделителя - PullRequest
0 голосов
/ 18 февраля 2019

Я использовал макет CardView в list_item.xml "почтовой ячейке xml" для RecyclerView ", я пытался сделать карточки выпуклыми, а цвет разделителя близок к серому, как это

image

Но это выглядит так, как будто у него нет ни появления, ни цвета,это изображение для текущей ситуации

image

this post_item.xml

   <?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_margin="5dp"
    android:elevation="6dp"
    >

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

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="vertical"
            android:padding="10dp">

            <TextView
                android:id="@+id/postTitle"
                style="@style/Base.TextAppearance.AppCompat.Title"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginEnd="5dp"
                android:layout_marginRight="5dp"
                android:ellipsize="end"
                android:maxLines="2"
                android:text="This is the post title,
you can check bla bla bla bla bla lkjdflkjhnfldkjhnflkjhnlfkjnglkjnlkjkln" />

            <TextView
                android:id="@+id/postDescription"
                style="@style/Base.TextAppearance.AppCompat.Body2"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginTop="5dp"
                android:layout_marginEnd="5dp"
                android:layout_marginRight="5dp"
                android:ellipsize="end"
                android:maxLines="4"
                android:text="This is the post titldfkjfdjffkjdhfnkjdsfjnkdsjnksskskjfnksjfnksjfnksjfnkjdfbdnfbjvb jkxzbvkjxcvbvkjve,
you can check bla bla bla bla bla lkjdflkjhnfldkjhnflkjhnlfkjnglkjnlkjkln" />

        </LinearLayout>

        <ImageView
            android:id="@+id/postImage"
            android:layout_width="match_parent"
            android:layout_height="125dp"
            android:layout_marginEnd="5dp"
            android:layout_marginRight="5dp"
            android:layout_weight="3"
            android:adjustViewBounds="true"
            android:src="@mipmap/ic_launcher" />


    </LinearLayout>

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

Я попытался решить проблему, добавив эти две строкина RecyclerView вот так ответ но это не сработалоandroid:divider="#E6E6E6" android:dividerHeight="0px"

Ответы [ 4 ]

0 голосов
/ 04 марта 2019

После установки этой опции

app:cardUseCompatPadding="true"
app:cardElevation="6dp"

Я предлагаю добавить белый цвет в RecyclerView

<androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recyclerView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#F5F5F5" // >>> this the color you need
        >

    </androidx.recyclerview.widget.RecyclerView>
0 голосов
/ 28 февраля 2019

Попробуйте этот код:

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_margin="5dp"
    app:cardUseCompatPadding="true"
    app:cardElevation="6dp"
    app:cardCornerRadius="3dp"
    >

Вы должны использовать:

app:cardElevation="6dp"

вместо:

android:elevation="6dp"

Чтобы нарисовать тень, вы должны использовать аппаратное ускорение рисования

<application android:hardwareAccelerated="true" ...>

Объяснение из Android doc:

В CardView добавлены дополнительные отступы для рисования теней на платформах до L.

Это может привести к разным размерам карт между Lи до L. Если вам нужно выровнять CardView с другими представлениями, вам могут потребоваться ресурсы измерения для конкретной версии API, чтобы учесть изменения.В качестве альтернативы вы можете установить для флага cardUseCompatPadding значение true, и CardView добавит те же значения заполнения на платформах L и после.

Поскольку установка флага cardUseCompatPadding в значение true добавляет ненужные пробелы в пользовательском интерфейсе, значение по умолчанию равно false.

0 голосов
/ 03 марта 2019

Если проблема не решена, используйте цвет фона в RecycleView.

0 голосов
/ 27 февраля 2019

После некоторых поисков я нашел вопрос относительно той же проблемы

Проблема в том, что эта опция была ложной в файле манифеста

<application android:hardwareAccelerated="true" ...>

также этот ответ содержит некоторые варианты, которые были очень полезны для меня, такие какэтот

app:cardUseCompatPadding="true"
...