欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

软键盘无法把内容顶出屏幕外

程序员文章站 2023-09-28 23:18:09
转载请标明出处,维权必究:https://www.cnblogs.com/tangZH/p/12037179.html 继上次这一篇后:https://www.cnblogs.com/tangZH/p/12013685.html 我继续探讨,这次的场景和上一次的场景是一样的,在一个布局中,根布局是相 ......

转载请标明出处,维权必究:https://www.cnblogs.com/tangzh/p/12037179.html

 

继上次这一篇后:https://www.cnblogs.com/tangzh/p/12013685.html

我继续探讨,这次的场景和上一次的场景是一样的,在一个布局中,根布局是相对布局,需要被软键盘顶上去的部分为线性布局。线性布局最下方为一个editext,后来发现,当线性布局的内容过多的时候,线性布局没法被顶出屏幕外,到达顶端就停止了,导致下方的editext被软键盘遮挡住。

 

我在根布局最外层套上一个scrollview,这样一来发现下方的editext还是会被遮挡住,但是不同的是,这时候你可以去手动将整个布局往上滑动,可我们需要的是顶上去之后自动露出来全部,而不是靠用户手动去滑,于是乎我想到了下面这种方法:

scrollview = findviewbyid(r.id.scroll);
view.getviewtreeobserver().addongloballayoutlistener(
   () -> scrollview.fullscroll(scrollview.focus_down));

监听view布局发现变化(也就是软键盘出现或者消失的时候)的时候就将scrollview滑动到最底下,这样就能够使得需要显示的内容不被软键盘遮挡。