leo*_*ojg 5 android android-layout android-fragments
我正在处理一个奇怪的问题,我有点迷失了该走哪个方向:
我有一个从应用程序中的多个位置打开的片段(它显示用户个人资料)。大多数地方都可以,但特别是在一个地方,它有一个奇怪的行为,第一次打开时,大多数视图都是空白的,但有些像个人资料图片和工具栏标题是可以的,如果我返回并输入它然后所有视图都按预期可见。
我尝试了几种方法来解决这个问题,特别是,一种是调用activity.recreate()片段onCreateView(),使视图可见,但有一些我想避免的副作用,而且只是一个补丁,不直接处理问题。
现在,对我来说最奇怪的部分是,如果我在布局检查器中打开屏幕,我会看到以下内容:
正如您所看到的,文本视图和其他元素已设置,但只是不可见。
我尝试过的一个实验是给一个文本视图一个固定的宽度,在这种情况下它是可见的,这可能是constraintLayout的一些问题吗?
还有其他想法吗?
提前致谢!
编辑:
另一件事是,viewstubs 在这里有什么作用吗?
这是布局:
<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
285 次 |
| 最近记录: |