为自定义视图设置adjustResize行为(如在软键盘中)

时间:2016-05-13 18:25:44

标签: android view android-softkeyboard custom-keyboard

我有一个自定义视图,并希望将adjustResize逻辑应用于它,就像我们可以使用软键盘一样。

double*

我的自定义视图扩展了 LinearLayout 。是否可以在显示此自定义视图时调整窗口大小,以便视图不覆盖其内容?

我们将不胜感激。

1 个答案:

答案 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
    }