虽然在Layout,
内创建了FitWindowsLinearLayout
我,但似乎无法理解LinearLayout
和FitWindowsLinearLayout
之间的区别。
那么,我们什么时候应该使用FitWindowsLinearLayout
?
答案 0 :(得分:3)
首先,您可以看到它是annotated with @hide
,这意味着它不会暴露给公共API。这意味着你不应该使用它。
其次,回答你的问题:正如你从实现中看到的那样,它有一个公共方法,它设置了一个监听器:
public void setOnFitSystemWindowsListener(OnFitSystemWindowsListener listener) {
mListener = listener;
}
调用fitSystemWindows(Rect)
时会调用此侦听器:
@Override
protected boolean fitSystemWindows(Rect insets) {
if (mListener != null) {
mListener.onFitSystemWindows(insets);
}
return super.fitSystemWindows(insets);
}
这意味着,您可以按照以下方式检索Rect insets
:
FitWindowsLinearLayout layout = new FitWindowsLinearLayout(context);
layout.setOnFitSystemWindowsListener(new OnFitSystemWindowsListener() {
boolean onFitSystemWindows(Rect insets) {
// interact with `insets`
return true;
}
})
要知道什么是插入内容,请参阅this解释。