出现软键盘时如何避免仅将底部导航栏向上推

如何解决出现软键盘时如何避免仅将底部导航栏向上推

我在我的 android 应用中有这样的视图

enter image description here

一个 const stream = require('stream'); const fs = require('fs'); const readStream = fs.createReadStream("./logs/report.csv"); const writeStream = fs.createWriteStream("./logs/report.csv"); const transformer = new stream.Transform({ // buffer is a chunk of stream,enc is type of chunk,done is a callback when transform is done transform(buffer,enc,done){ const lines = buffer.toString().split('\n'); const transformedChunkAsstring = lines.map(workYourMagicAndReturnFormattedLine).join('\n'); const transformedBuffer = Buffer.from(transformedChunkAsstring); this.push(transformedBuffer); done(); } }) readStream.pipe(transformStream).pipe(writeStream); 具有该 mainActivity,并且活动内部有一个片段,底部有两个按钮。

我应该做的是,当软键盘出现时,bottomNavBar 应该停留在底部(在键盘后面)但是这两个按钮应该被向上推并且在键盘顶部可见

如果我在 bottomNavBar 文件中为 mainActivity 设置了 android:windowSoftInputMode="adjustResize",那么键盘也会向上推bottomNavBar 和按钮。

如果我仅将 manifest 设置为片段(以编程方式),那么它仍然显示相同的行为。

我该怎么做?任何建议将不胜感激

这是我的活动 xml

android:windowSoftInputMode="adjustResize"

解决方法

我也面临同样的问题,经过多次努力,我找到了一个对我有用的解决方案。当键盘应用程序使bottomNavBar可见时,我会做什么GONE反之

试试这个以获得键盘打开关闭事件 -

view.getViewTreeObserver().addOnGlobalLayoutListener(() -> {
      Rect r = new Rect();
      view.getWindowVisibleDisplayFrame(r);
      if (view.getRootView().getHeight() - (r.bottom - r.top) > 500) {
        // on Keyboard Open
        llBottomNavBarLayout.setVisibility(View.GONE);
      } else {
        // on keyboard close
        llBottomNavBarLayout.setVisibility(View.VISIBLE);
      }
    });

为了获得视图,我使用

LayoutInflater layoutInflater = getLayoutInflater();
View view = layoutInflater.inflate(R.layout.activity_abc,null);
,

感谢您的更新。我试过你的布局。在相应的活动 android:windowSoftInputMode="adjustNothing" 上添加到您的清单 请注意,这也会影响 FAB 和其他锚点视图

<activity
   android:name=".activities.MainActivity"
   android:windowSoftInputMode="adjustNothing">
     <intent-filter>
       <action android:name="android.intent.action.MAIN" />
       <category android:name="android.intent.category.LAUNCHER" />
     </intent-filter>
 </activity>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?