efe*_*ney 5 android android-fragments androiddesignsupport
在我的应用程序中,我有一个活动.此活动的主题是正常的pre-L,但是对于L及以上,它被覆盖,具有:
...
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@color/statusTrans</item>
...
Run Code Online (Sandbox Code Playgroud)
此活动具有这样的布局(fsw表示该节点适合SystemWindows)以提供Material效果.
CoordinatorLayout (fsw)
L AppBarLayout (fsw)
L CollapsingToolbarLayout (fsw)
L ImageView (fsw)
L Toolbar
L TabLayout
L ViewPager
L FAB
Run Code Online (Sandbox Code Playgroud)
事情是,我DialogFragment通过事务向这个活动添加一个全屏,通过添加到具有这种布局的android.R.id.content
CoordinatorLayout (fsw)
L AppBarLayout (fsw)
L CollapsingToolbarLayout (fsw)
L FrameLayout
L Toolbar
L TabLayout
L NestedScrollView
Run Code Online (Sandbox Code Playgroud)
初始布局绘制statusBar,然后Toolbar按预期绘制它(即插入内插),但添加的片段布局Toolbar直接在statusBar下绘制,我似乎无法将其绘制正确.
我不知道我做错了什么.下面有两个屏幕截图显示问题.
.
还有(奖金问题!)
在同一个Activity中,我设置了Viewpager一个ScrollingViewBehavior.填充的片段Viewpager有一个ViewFlipper切换其中一个:loadingView(ProgressBar),contentView(RecyclerView)和emptyView(LinearLayout).这确保了如果theres内容,则活动具有所需的滚动效果.
emptyView出现问题,因为它没有正确居中.我附上了一张图片.
我该如何纠正(或破解)这种行为?
无论您在何处替换片段,请确保其位于协调器布局中。例如,如果您的 xml 如下所示:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:ignore="MissingPrefix">
<FrameLayout
android:id="@+id/fl_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Run Code Online (Sandbox Code Playgroud)
然后将其包装在协调器布局中以解决问题。
| 归档时间: |
|
| 查看次数: |
1276 次 |
| 最近记录: |