У меня есть ситуация, когда отображаются просмотры с повторным просмотром, но, полагаю, из-за некоторой оптимизации на Android они не ретранслируют.Силовой ретранслятор LinearLayout
В ряде постов предлагается вызвать view.layout() на переработанном представлении, которое, как я подозреваю, будет работать. Тем не менее, это также означает настройку моих собственных LayoutParams, и, хотя я уверен, что смогу заставить его работать, у меня действительно нет всей информации, доступной в тот момент, когда переработанное представление повторно инициализируется, чтобы сделать это правильно.
Эта проблема может быть уникальной для вложенных LinearLayouts. Когда я проверил тест, обрушившись на один LinearLayout, проблема исчезла.
Вот упрощенная версия макета, которая терпит неудачу. В этом примере вызывается внешняя LinearLayout's onLayout(). Я не знаю (без дополнительных экспериментов), если вызывается внутренняя компоновка onLayout(). TextLink OnLayout не вызывается и не используется для «других вещей».
UPDATE: внутренняя компоновка onLayout() не вызывается.
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/node"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/note"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
... more stuff ...
</LinearLayout>
... more stuff ...
</LinearLayout >
О, я должен упомянуть, это, кажется, происходит только на устройствах под управлением Android API 19.
Я надеюсь, что есть «правильный» способ заставить Android, чтобы relayout в в TextView и другие виджеты на его уровне.