作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
核心版本:androidx.core:core:1.0.1
有什么正确的方法可以创建WindowInsetsCompat
的实例吗?
如我所见,它具有私有(private)构造函数:
private WindowInsetsCompat(Object insets) {
mInsets = insets;
}
它从 5 个方法和 1 个静态包装器调用,具有包私有(private)可见性:
static WindowInsetsCompat wrap(Object insets) {
return insets == null ? null : new WindowInsetsCompat(insets);
}
那个wrap
方法只用在ViewCompat
里面的6个方法,仅此而已。
那么,我们能否以某种方式创建 WindowInsetsCompat 的实例?
或者,唯一的方法是 cmd+c/cmd+v?
最佳答案
您有两种解决方案来创建 WindowInsetsCompat
的实例。
可以使用反射来调用私有(private)构造函数:
package com.example.myapplication;
import androidx.core.view.WindowInsetsCompat;
import java.lang.reflect.Constructor;
public class WindowInsetsCompatHelper {
public static WindowInsetsCompat createWindowInsetsCompat(Object insets) {
try {
Constructor<WindowInsetsCompat> constructor = WindowInsetsCompat.class.getDeclaredConstructor(Object.class);
constructor.setAccessible(true);
return constructor.newInstance(insets);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
需要在androidx.core.view
包中创建一个辅助类。之后就可以直接使用wrap
方法了:
package androidx.core.view;
public class WindowInsetsCompatHelper {
public static WindowInsetsCompat createWindowInsetsCompat(Object insets) {
return WindowInsetsCompat.wrap(insets);
}
}
关于android - 创建 WindowInsetsCompat 的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57913163/
核心版本:androidx.core:core:1.0.1 有什么正确的方法可以创建WindowInsetsCompat的实例吗? 如我所见,它具有私有(private)构造函数: private W
随着AndroidX Core v1.5.0-alpha02中WindowInsetsCompat的发布,相当于什么 view.windowInsetsController?.hide(WindowI
我是一名优秀的程序员,十分优秀!