小编For*_*ice的帖子

WindowBackground可以定位在状态栏下方和导航栏上方吗?

基于本教程这个答案,也引用了这个其他教程,使用主题android:windowBackground和一个<layer-list/>似乎是最批准的创建Android启动画面的方法

使用这种技术将徽标集中在屏幕上很容易; 但是,我想在屏幕的顶部或底部放置图形.我遇到了问题,因为如下面的屏幕截图所示,windowBackground屏幕顶部的状态栏和底部的导航栏背后都显示出来,因此图形显示为截止



问题: 是否可以指示将windowBackground自己定位在状态栏下方和导航栏上方?如果没有,使用windowBackground启动画面技术是否可以创建状态栏或导航栏未涵盖的启动画面?

要重现该问题,请创建一个新的Android Studio项目,该项目将为您提供ic_launcherdrawable并按照上面链接的其中一个教程但使用以下layer-listdrawable

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:opacity="opaque">
    <item android:drawable="#000000"/>
    <item>
        <bitmap
            android:gravity="left|top"
            android:src="@drawable/ic_launcher"/>
    </item>
    <item>
        <bitmap
            android:gravity="center"
            android:src="@drawable/ic_launcher"/>
    </item>
    <item>
        <bitmap
            android:gravity="bottom"
            android:src="@drawable/ic_launcher"/>
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

android splash-screen android-layout android-theme

12
推荐指数
1
解决办法
2074
查看次数

NavigationView Ripple在支持库23.1.0更新中丢失

使用"设计支持库"版本时23.0.1,NavigationView默认情况下,菜单项会在选中时支持波纹动画.但是,升级到Design Support Library版本时23.1.0,波纹动画似乎丢失了.这是一个错误吗?还有其他人注意到这一点并且可以复制它吗?而且,更好的是,有没有人有解决方案?

我首先在使用NavigationViewvia Design Support Library 时发现了这个问题,23.4.0并注意到菜单项没有涟漪效应.然而,直到我按照AndroidForDevs提供的 NavigationView教程,我才能将责任归咎于Design Support Library版本23.1.0.

复制和重现该问题,结帐本教程的示例代码,它利用设计支持库版本22.2.0,并撞击版本23.1.0应用程序的的build.gradle.然后,您会注意到菜单项在选中时不会出现波纹.但是,如果您还原为版本,22.2.0或者23.0.1在选择时您会注意到这些项目会出现波纹.

作为参考,这里是支持库更改日志的链接.虽然它提到允许自定义视图的更新,但NavigationView我无法想到为什么这可能导致默认情况下消除涟漪效应,因为它听起来无关紧要.这是逐字逐句的变更说明

通过使用app:actionLayout属性或MenuItemCompat.setActionView() 方法添加了对NavigationView类的自定义视图的支持.

注意:当选择菜单项时阻止抽屉关闭时,最容易看到此问题.这可以通过评论这一行来实现

android navigation-drawer rippledrawable navigationview

5
推荐指数
0
解决办法
282
查看次数

BottomSheetBehavior、AppBarLayout.ScrollingViewBehavior 和 AppBarLayout.Behavior 如何协同工作?

在下面的 GIF 中,您会看到我在协调 (heh)包含CollapsingToolbarLayoutPersistent BottomSheetAppBarLayout 时遇到了麻烦,它们可以很好地协同工作



目标: 片段内容,如上图绿松石色 ( #26999f ) 保持在上方,但滚动到下方,BottomSheet,如上图深绿色(#12783e),同时也尊重 AppBarLayout 及其行为

同样,正如您从 GIF 中看到的那样,我很接近;片段内容使用自定义 layout_behaviorMyScrollingViewBehavior,它扩展了AppBarLayout.ScrollingViewBehavior

在下面的代码片段中,如果是 a (本例中的BottomSheet)或任何( ) 依赖于的实例,您将看到MyScrollingViewBehavior#layoutDependsOn返回truedependencyRelativeLayoutsuperAppBarLayout.ScrollingViewBehavior#layoutDependsOn

@Override
public boolean layoutDependsOn(CoordinatorLayout parent, View child, View dependency) {
    return dependency instanceof RelativeLayout ||
            super.layoutDependsOn(parent, child, dependency);
}
Run Code Online (Sandbox Code Playgroud)

MyScrollingViewBehavior#onDependentViewChanged如果dependency是的一个实例RelativeLayout,这意味着依赖是BottomSheet,孩子,又名片段的内容,可向上或向下移动使用offsetTopAndBottom,以确保它仍然是BottomSheet以上

@TargetApi(VERSION_CODES.LOLLIPOP)
@Override
public boolean onDependentViewChanged(CoordinatorLayout …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-coordinatorlayout android-appbarlayout bottom-sheet

5
推荐指数
0
解决办法
946
查看次数