我正在处理一个多模块项目,在从支持库转换到 AndroidX 后,./gradlew connectedCheck失败了:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':MyProject:connectedDebugAndroidTest'.
> There were failing tests. See the report at: file:///Users/justinpollard/Dev/android-app/MyProject/build/reports/androidTests/connected/index.html
Run Code Online (Sandbox Code Playgroud)
再往上一点,我看到这条消息:
11:48:13 I/RemoteAndroidTest: Running am instrument -w -r com.myproject.test/androidx.test.runner.AndroidJUnitRunner on Pixel XL - 9
11:48:13 V/ddms: execute: running am instrument -w -r com.myproject.test/androidx.test.runner.AndroidJUnitRunner
11:48:15 V/InstrumentationResultParser: INSTRUMENTATION_RESULT: shortMsg=Process crashed.
11:48:15 I/InstrumentationResultParser: test run failed: 'Instrumentation run failed due to 'Process crashed.''
Starting 0 tests on Pixel XL - 9
Tests …Run Code Online (Sandbox Code Playgroud) 示例项目说明问题
https://github.com/justincpollard/TransparentToolbarExample
背景
我们有Activity/ Fragment组合用于在我们的应用程序中显示内容.我们的用户能够在多个内容之间导航,这些内容基本上将这些Activity/ Fragment组合放在另一个上面.点击硬件后退按钮或向上按钮只会显示前一段内容.
以下引用示例项目
当用户正在查看一段内容时,工具栏(android.support.v7.widget.Toolbar)及其文本将开始透明.我们这样完成:
public void onCreateView(...) {
...
toolbar = (Toolbar) v.findViewById(R.id.toolbar);
...
actionBarDrawable = toolbar.getBackground();
actionBarDrawable.setAlpha(0);
actionBarText.setTextColor(Color.argb(0, 255, 255, 255));
...
}
Run Code Online (Sandbox Code Playgroud)
如果用户滚动浏览页面上的某个点,例如滚动等于工具栏高度的数量,我们会将工具栏背景和文本的alpha设置为0到255的动画,从根本上显示工具栏:
private void animateToolbar(final int start, final int finish) {
toolbarIsAnimating = true;
ValueAnimator animator = ValueAnimator.ofInt(start, finish);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
toolbarAlpha = (int) animation.getAnimatedValue();
actionBarDrawable.setAlpha(toolbarAlpha);
actionBarText.setTextColor(Color.argb(toolbarAlpha, 255, 255, 255));
if(toolbarAlpha == finish) {
toolbarIsAnimating = false;
} …Run Code Online (Sandbox Code Playgroud)