-
Couldn't load subscription status.
- Fork 211
键盘处理
xuwhale6 edited this page Oct 13, 2020
·
2 revisions
对window整体上移,让当前焦点的输入框位于键盘上方。
-- 相关方法
--默认offset=0。用于view位于键盘上方后,调整偏移量
keyboardOffset(offset)
-- 默认true,点击任何区域,会自动收起键盘。可以指定view忽略收起
keyboardDismiss(auto)
--监听键盘回调,自定义交互
watchKeyboard(function(isShow, height)
print("watchKeyboard-->", isShow, height)
end)
--示例
ui {
--- layout views
HStack().subs(
EditTextView()
.width(200)
.height(50)
.bgColor(Color(100, 100, 200, 1))
.placeholder("请输入")
.placeholderColor(Color(255, 255, 255, 1))
.padding(10, 10, 10, 10)
).widthPercent(100)
.height(100)
.positionType(PositionType.ABSOLUTE)
.positionBottom(0)
.bgColor(Color(0x999999))
}.keyboardOffset(10) --默认offset=0。用于view位于键盘上方后,调整偏移量
.keyboardDismiss(true) -- 默认true,点击任何区域,会自动收起键盘。
.watchKeyboard(function(isShow, height)
--监听键盘回调,自定义交互
print("watchKeyboard-->", isShow, height)
end)对EditTextView设置,让其位于键盘上方。只有获取焦点的EditTextView,才能上移。
ui {
HStack().subs(
EditTextView()
.width(150)
.height(50)
.bgColor(Color(100, 100, 200, 1))
.placeholder("请输入11")
.placeholderColor(Color(255, 255, 255, 1))
.padding(10, 10, 10, 10)
--为EditTextView设置keyboard
.keyboard(20)
,
EditTextView().left(10)
.width(150)
.height(50)
.bgColor(Color(100, 100, 200, 1))
.placeholder("请输入22")
.placeholderColor(Color(255, 255, 255, 1))
.padding(10, 10, 10, 10)
).widthPercent(100)
.height(100)
.positionType(PositionType.ABSOLUTE)
.positionBottom(0)
.bgColor(Color(0x999999))
}对目标View设置,让其位于键盘上方。如果目标容器中有子EditText,偏移容器。
ui {
HStack().subs(
EditTextView()
.width(150)
.height(50)
.bgColor(Color(100, 100, 200, 1))
.placeholder("请输入11")
.placeholderColor(Color(255, 255, 255, 1))
.padding(10, 10, 10, 10)
--为EditTextView设置keyboard
.keyboard(20)
,
EditTextView().left(10)
.width(150)
.height(50)
.bgColor(Color(100, 100, 200, 1))
.placeholder("请输入22")
.placeholderColor(Color(255, 255, 255, 1))
.padding(10, 10, 10, 10)
).widthPercent(100)
.height(100)
.positionType(PositionType.ABSOLUTE)
.positionBottom(0)
.bgColor(Color(0x999999))
.keyboard(10)
}--- 和EditTextView同一id的View互相关联,焦点id的view都跟随对应EditTextView上移,让其位于键盘上方。
keyboard(offset, id)
ui {
HStack().subs(
EditTextView()
.width(150)
.height(50)
.bgColor(Color(100, 100, 200, 1))
.placeholder("请输入11")
.placeholderColor(Color(255, 255, 255, 1))
.padding(10, 10, 10, 10)
--为EditTextView设置keyboard
.keyboard(20, "et1")
,
EditTextView().left(10)
.width(150)
.height(50)
.bgColor(Color(100, 100, 200, 1))
.placeholder("请输入22")
.placeholderColor(Color(255, 255, 255, 1))
.padding(10, 10, 10, 10)
.keyboard(50, "et2")
,
Label("111").keyboard(10, "et1").right(10)
,
Label("222").keyboard(10, "et2")
).widthPercent(100)
.height(100)
.positionType(PositionType.ABSOLUTE)
.positionBottom(0)
.bgColor(Color(0x999999))
}注意
<activity
android:name=".activity.LuaViewActivity"
android:windowSoftInputMode="adjustPan|stateAlwaysHidden" />