android - 更改软键盘高度
问题描述
我需要为横向模式减小 android 软键盘的大小。
public class MainActivity extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/* MyKeyboard myKeyboard = new MyKeyboard(this,);
adjustKeyboardKeyHeight(myKeyboard,100);*/
}
private void adjustKeyboardKeyHeight (MyKeyboard keyboard, int newKeyHeight) {
int oldKeyHeight = keyboard.getKeyHeight();
int verticalGap = keyboard.getVerticalGap();
int rows = 0;
for (Keyboard.Key key : keyboard.getKeys()) {
key.height = newKeyHeight;
int row = (key.y + verticalGap) / (oldKeyHeight + verticalGap);
key.y = row * newKeyHeight + (row - 1) * verticalGap;
rows = Math.max(rows, row + 1);
}
keyboard.setHeight(rows * newKeyHeight + (rows - 1) * verticalGap);
}
private static class MyKeyboard extends Keyboard {
private int height;
MyKeyboard (Context context, int xmlLayoutResId) {
super(context, xmlLayoutResId);
height = super.getHeight();
}
@Override public int getKeyHeight() {
return super.getKeyHeight();
}
@Override public int getVerticalGap() {
return super.getVerticalGap();
}
public void setHeight (int newHeight) {
height = newHeight;
}
@Override public int getHeight() {
return height;
}
}
}
我对传递给 xmlLayoutResId 的内容有疑问
MyKeyboard myKeyboard = new MyKeyboard(this,);
//在这一行中我需要
知道传递给那个 xmlLayoutResId 的内容
解决方案
推荐阅读
- docker - 为什么无法与 Symfony 上的主机和 Docker 上的 Mailhog 建立连接
- node.js - connectDB 不是函数
- javascript - 根据另一个下拉值获取下拉数据
- typescript - 如何在 TypeORM 中存根嵌套存储库?
- java - 如何从源代码构建 terracotta OSS 服务器版本 4.3.5?
- xcode - macOS:在 Big Sur 中具有半透明效果的 NSToolbar
- shell - 如何在 Jenkins 配置中将 ${} 转义为代码(casc)插件?
- javascript - 在共享 javascript 模块中使用 fetch
- javascript - 在 React 中处理两个相似类型的 useEffect 函数的最佳方法是什么?
- vim - Vim Ctrl-] 不起作用,那么我该如何重新映射它的功能呢?(视窗 10)