2016-08-16 2 views
0

EDIT:Противоречивые размещения объекта внутри CardView с RecyclerView

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ: Как ни странно, он получает багги, только если есть только < = 3 элементов. Более того, поскольку каждый элемент можно прокручивать, макет будет «исправлять» себя при рестанировании.

ДОПОЛНИТЕЛЬНЫЕ ДЕТАЛИ: Ссылка на демонстрационное видео, которое показывает проблему.

Youtube Video - https://youtu.be/zlwi_Bz-HQo


Так ниже скриншот, был взят из того же бежать от андроида студии.

На скриншоте у меня есть 2 одинаковых вида карты (с фиктивными данными прямо из .xml, поэтому я не назначаю данные из java-файла).

enter image description here Проблема

  1. Если вы, ребята, смотрите в правом нижнем углу каждого CardView, есть вид текст под названием «читать далее».

    Как ни странно, даже если они идентичны, это по-другому. Кстати, это на самом деле 3 одинаковые карты. При первом запуске верхний «читать еще» также неправильно размещен, но он автоматически корректирует себя, когда я полностью прокручиваю его вниз и обратно.

  2. Вторая проблема - это 5x4 точек в верхней части карты. Это по-другому отличается от того, что видно из редактора.

enter image description here

(Размещение является точным на редакторе)

Любой идею, как справиться с этим неисправностьобъявлением? Благодарю.

Btw, я не уверен, что вам нужен код, но на всякий случай, вот он на Pastebin (чтобы сократить длину сообщения).

+0

Ваше видео YouTube не работает, оно застревает. Загрузите новое видео для него. –

+0

@VipulAsri сделано. пожалуйста, проверьте его снова. –

+0

Если вы удалите XML-элементы, отличные от «read more», все-таки случилась такая же проблема? – nshmura

ответ

1

Используйте match_parent для RecyclerView.

Фикс так:

<android.support.v7.widget.RecyclerView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/recycler_view_timeline" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true"/> 

Если ширина родительского вида не wrap_content, ширина родительского вида не может быть определена до ширины в дочернее не determed. Я не знаю результат установки layout_width="wrap_content" для родительского вида и layout_width="match_parent" для детского просмотра. Я думаю, результат может быть неправильным расположением. В вашем макете такая же ситуация происходит. RecyclerView имеет layout_width="wrap_content" и CardView имеет layout_width="match_parent".

+0

ничего себе! Благодарю. Кстати, можете ли вы объяснить, почему это происходит? Я бы хотел изучить поведение Android. Спасибо! –

+1

@MosesAprico Я обновил свой ответ. – nshmura

Смежные вопросы