ViewCompat.setElevation不会在LOLLIPOP下面的另一个视图上绘制视图吗?

时间:2017-10-21 07:56:41

标签: android android-elevation

使用下面的代码,我尝试在单击其中一个视图时在另一个视图上绘制视图,并在再次单击时反转它。在API级别25,它工作正常,但在使用API​​ 17的另一部手机上,它不起作用

private void elevationTest() {
    final View view1 = findViewById(R.id.view1);
    final View view2 = findViewById(R.id.view2);

    final boolean[] asdf = {true};

    view1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            if (asdf[0]) {
                ViewCompat.setElevation(view1, 1);
                ViewCompat.setElevation(view2, 2);
                asdf[0] = !asdf[0];
            } else {
                ViewCompat.setElevation(view1, 2);
                ViewCompat.setElevation(view2, 1);
                asdf[0] = !asdf[0];
            }
        }
    });
}

有没有办法让它成真?感谢。

修改 我没有尝试在我的视图下模拟阴影,只是试图将它们相互绘制(在这种情况下,单击第一个视图时)。

1 个答案:

答案 0 :(得分:0)

在大多数情况下,开发人员使用布局填充来设置子视图的空间。如果子视图没有至少2dp的余量,您将看不到该视图的阴影。