我有一个自定义视图,并希望将adjustResize逻辑应用于它,就像我们可以使用软键盘一样。
double*
我的自定义视图扩展了 LinearLayout 。是否可以在显示此自定义视图时调整窗口大小,以便视图不覆盖其内容?
我们将不胜感激。
答案 0 :(得分:1)
我没试过这个,但这里有一种可能性:
假设您为自定义视图添加了自定义属性。我们称之为“imeVisible”。
布局/ view.xml用:
...
app:imeVisible="false"
...
布局keysexposed / view.xml用:
...
app:imeVisible="true"
...
我假设系统会在layout-keysexposed
中有内容时为IME显示/隐藏生成配置更改,因为通常它不会。
但它会进行布局更改(adjustResize
),因此另一种更通用的方法是在自定义视图中覆盖onLayout()
:
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
super.onLayout(changed, l, t, r, b);
int height = b - t;
// logic here for different heights
}