如何解决出现软键盘时如何避免仅将底部导航栏向上推
我在我的 android 应用中有这样的视图
有一个 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 举报,一经查实,本站将立刻删除。