I'm dealing with a weird issue and I'm kind of lost about which direction to take:
I have a fragment which is opened from several places in the app(it shows an user profile). Most of the places it's ok but in one in particular it has a strange behavior, the first time it's open, most views are blank, but some like the profile picture and the toolbar title are ok, if I go back and enter it again then all the views are visible as expected.
I have tried several approached to solve this, one in particular is to call activity.recreate() in the fragment onCreateView() which makes the views visible but has some side effects that I want to avoid and also is just a patch and not dealing directly with the problem.
Now, the most strange part to me is that if I open the screen in the layout inspector I see this:
As you can see the textviews and other elements are set, but just not visible.
One experiment I tried was giving a textview a fixed width and in that case it is visible, could this be some problem with the constraintLayout?
Any other ideas?
Thanks in advance!
EDIT:
One other thing, could the viewstubs have anything to do here?
This is the layout:
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="false">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/app_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true">
<com.google.android.material.appbar.CollapsingToolbarLayout
android:id="@+id/collapsingToolBar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:elevation="0dp"
android:fitsSystemWindows="true"
app:expandedTitleGravity="top"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:titleEnabled="false">
<androidx.constraintlayout.widget.ConstraintLayout
style="@style/ProfileContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="?attr/actionBarSize"
android:elevation="0dp"
android:paddingBottom="@dimen/padding_margin_large_20">
<include
layout="@layout/common_profile_picture"
style="@style/ProfileImage"
android:id="@+id/userPicture"
android:layout_width="@dimen/round_avatar_size"
android:layout_height="@dimen/round_avatar_size"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"/>
<androidx.constraintlayout.widget.Group
android:id="@+id/follow_group"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"
app:constraint_referenced_ids="user_followers_label_textview,user_followers_number_textview,follow_divider,user_following_label_textview,user_following_number_textview,sectionFollowers,sectionFollowing" />
<TextView
style="@style/ProfileFollowerTextLabel"
android:id="@+id/user_followers_label_textview"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toStartOf="@+id/user_following_label_textview"/>
<TextView
style="@style/ProfileFollowerText"
android:id="@+id/user_followers_number_textview"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/user_followers_label_textview"
app:layout_constraintStart_toStartOf="@+id/user_followers_label_textview"
app:layout_constraintEnd_toEndOf="@+id/user_followers_label_textview"/>
<View
android:id="@+id/sectionFollowers"
android:layout_width="0dp"
android:layout_height="@dimen/profile_vertical_divider_height"
android:layout_marginTop="@dimen/padding_margin_large_28"
android:background="?selectableItemBackground"
android:visibility="gone"
app:layout_constraintTop_toTopOf="@+id/user_followers_label_textview"
app:layout_constraintStart_toStartOf="@+id/user_followers_label_textview"
app:layout_constraintEnd_toStartOf="@id/user_following_label_textview"
app:layout_constraintBottom_toBottomOf="@+id/user_followers_number_textview"/>
<include layout="@layout/common_divider"
android:id="@+id/follow_divider"
android:layout_width="1dp"
android:layout_height="@dimen/profile_vertical_divider_height"
android:layout_marginTop="@dimen/padding_margin_large_28"
app:layout_constraintTop_toTopOf="@+id/user_followers_label_textview"
app:layout_constraintBottom_toBottomOf="@+id/user_followers_number_textview"
app:layout_constraintStart_toEndOf="@+id/user_followers_label_textview"
app:layout_constraintEnd_toStartOf="@+id/user_following_label_textview"
app:layout_constraintHorizontal_bias="1.0"/>
<TextView
style="@style/ProfileFollowingTextLabel"
android:id="@+id/user_following_label_textview"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="@+id/user_followers_label_textview"
app:layout_constraintBottom_toBottomOf="@+id/user_followers_label_textview"
app:layout_constraintEnd_toEndOf="parent"/>
<TextView
style="@style/ProfileFollowingText"
android:id="@+id/user_following_number_textview"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/user_following_label_textview"
app:layout_constraintStart_toStartOf="@+id/user_following_label_textview"
app:layout_constraintEnd_toEndOf="@+id/user_following_label_textview"/>
<View
android:id="@+id/sectionFollowing"
android:layout_width="0dp"
android:layout_height="@dimen/profile_vertical_divider_height"
android:layout_marginTop="@dimen/padding_margin_large_28"
android:background="?selectableItemBackground"
android:visibility="gone"
app:layout_constraintTop_toTopOf="@+id/user_followers_label_textview"
app:layout_constraintStart_toStartOf="@+id/user_following_label_textview"
app:layout_constraintEnd_toEndOf="@id/user_following_label_textview"
app:layout_constraintBottom_toBottomOf="@+id/user_following_number_textview"/>
<ViewStub
style="@style/ProfileAction"
android:id="@+id/profileaction_viewstub"
android:inflatedId="@+id/profileaction_viewstub"
android:layout_width="@dimen/profile_action_width"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/user_following_number_textview"
app:layout_constraintStart_toStartOf="@+id/user_followers_label_textview"/>
<TextView
style="@style/ProfileName"
android:id="@+id/user_fullname_textview"
android:layout_width="0dp"
android:layout_height="wrap_content"
tools:text="@string/placeholder"
android:drawablePadding="@dimen/padding_margin_small_4"
app:layout_constraintTop_toBottomOf="@+id/userPicture"
app:layout_constraintBottom_toTopOf="@+id/donation_list_label_textview"
app:layout_constraintVertical_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"/>
<TextView
android:id="@+id/userTitleTextView"
style="@style/ProfileTitle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:visibility="gone"
app:layout_constraintStart_toStartOf="@+id/user_fullname_textview"
app:layout_constraintTop_toBottomOf="@+id/user_fullname_textview" />
<androidx.emoji.widget.EmojiAppCompatTextView
style="@style/ProfileDesc"
android:id="@+id/user_description_textview"
android:layout_width="0dp"
android:layout_height="wrap_content"
tools:text="@string/placeholderLong"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/userTitleTextView"/>
<TextView
android:id="@+id/userWebSiteTextView"
style="@style/ProfileWebSite"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:autoLink="web"
android:visibility="invisible"
app:layout_constraintStart_toStartOf="@+id/user_fullname_textview"
app:layout_constraintTop_toBottomOf="@+id/user_description_textview" />
<androidx.constraintlayout.widget.Group
android:id="@+id/donating_group"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
app:constraint_referenced_ids="donation_list_label_textview,donating_arrow_imageview,donationList,donationDivider" />
<include
android:id="@+id/donationDivider"
layout="@layout/common_divider"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginStart="@dimen/padding_margin_medium_16"
android:layout_marginTop="@dimen/padding_margin_medium_16"
android:layout_marginEnd="@dimen/padding_margin_medium_16"
android:layout_marginBottom="@dimen/padding_margin_medium_16"
app:layout_constraintBottom_toTopOf="@+id/donation_list_label_textview"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/userWebSiteTextView" />
<TextView
android:id="@+id/donation_list_label_textview"
style="@style/ProfileDonatingLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/profile_donating"
app:layout_constraintStart_toStartOf="@+id/user_fullname_textview"
app:layout_constraintTop_toBottomOf="@+id/donationDivider" />
<ImageView
android:id="@+id/donating_arrow_imageview"
android:layout_width="@dimen/profile_arrow_size"
android:layout_height="@dimen/profile_arrow_size"
app:srcCompat="@drawable/ic_chevron_accent_right"
android:tint="?iconColorSelected"
app:layout_constraintBottom_toBottomOf="@+id/donation_list_label_textview"
app:layout_constraintStart_toEndOf="@+id/donation_list_label_textview"
app:layout_constraintTop_toTopOf="@+id/donation_list_label_textview"
app:layout_constraintVertical_bias="0.75" />
<TextView
android:id="@+id/donationList"
style="@style/TextValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="start"
android:paddingTop="@dimen/padding_margin_small_4"
android:paddingBottom="@dimen/padding_margin_large_30"
app:layout_constraintStart_toStartOf="@+id/user_fullname_textview"
app:layout_constraintTop_toBottomOf="@+id/donation_list_label_textview" />
</androidx.constraintlayout.widget.ConstraintLayout>
<include layout="@layout/common_divider"
android:id="@+id/postsDivider"
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_gravity="bottom"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
android:layout_marginStart="@dimen/padding_margin_medium_16"
android:layout_marginEnd="@dimen/padding_margin_medium_16"
android:layout_marginBottom="@dimen/padding_margin_medium_18"/>
<include layout="@layout/common_toolbar_back"
android:id="@+id/profileToolbar"/>
</com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout>
<FrameLayout
android:id="@+id/tabContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
<TextView
android:id="@+id/private_profile_textview"
style="@style/TextValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|bottom"
android:layout_marginBottom="@dimen/profile_private_label_bottom_margin"
android:text="@string/profile_private"
android:visibility="gone" />
<androidx.core.widget.ContentLoadingProgressBar
android:id="@+id/postsLoadingProgressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:theme="?android:attr/progressBarStyleLarge"
android:visibility="gone" />
<include layout="@layout/loader"
android:id="@+id/profileLoader"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
from Fragment views are blank or collapsed first time it opens

No comments:
Post a Comment