Closed tumuyan closed 2 years ago
可以倒退是那个 commit 引起的,确实有这个问题
另外安装新版本后如果是我自己的皮肤,弹出键盘时输入法直接崩溃。换用同文风填色错误,再次应用主题恢复正常,再改回自己的皮肤也正常了。
(KeyboardView.java:753)指向的错误是 keyBackground = (Drawable) getStateDrawable.invoke(mKeyBackColor, index);
这行代码
2021-09-14 21:46:10.356 491-491/com.tumuyan.trime E/KeyboardView: Get Drawable Exception
java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at com.osfans.trime.ime.keyboard.KeyboardView.onBufferDraw(KeyboardView.java:753)
at com.osfans.trime.ime.keyboard.KeyboardView.invalidateKeys(KeyboardView.java:1098)
at com.osfans.trime.ime.keyboard.KeyboardView.invalidateComposingKeys(KeyboardView.java:1105)
at com.osfans.trime.ime.core.Trime.updateComposing(Trime.java:1375)
at com.osfans.trime.ime.core.Trime.showWindow(Trime.java:749)
at android.inputmethodservice.InputMethodService$InputMethodImpl.showSoftInput(InputMethodService.java:757)
at android.inputmethodservice.InputMethodService$InputMethodImpl.showSoftInputWithToken(InputMethodService.java:726)
at android.inputmethodservice.IInputMethodWrapper.executeMessage(IInputMethodWrapper.java:226)
at com.android.internal.os.HandlerCaller$MyHandler.handleMessage(HandlerCaller.java:44)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:236)
at android.app.ActivityThread.main(ActivityThread.java:8043)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:620)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1011)
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=10; index=-1
at android.graphics.drawable.DrawableContainer$DrawableContainerState.getChild(DrawableContainer.java:909)
at android.graphics.drawable.StateListDrawable.getStateDrawable(StateListDrawable.java:272)
at java.lang.reflect.Method.invoke(Native Method)
at com.osfans.trime.ime.keyboard.KeyboardView.onBufferDraw(KeyboardView.java:753)
at com.osfans.trime.ime.keyboard.KeyboardView.invalidateKeys(KeyboardView.java:1098)
at com.osfans.trime.ime.keyboard.KeyboardView.invalidateComposingKeys(KeyboardView.java:1105)
at com.osfans.trime.ime.core.Trime.updateComposing(Trime.java:1375)
at com.osfans.trime.ime.core.Trime.showWindow(Trime.java:749)
at android.inputmethodservice.InputMethodService$InputMethodImpl.showSoftInput(InputMethodService.java:757)
at android.inputmethodservice.InputMethodService$InputMethodImpl.showSoftInputWithToken(InputMethodService.java:726)
at android.inputmethodservice.IInputMethodWrapper.executeMessage(IInputMethodWrapper.java:226)
at com.android.internal.os.HandlerCaller$MyHandler.handleMessage(HandlerCaller.java:44)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:236)
at android.app.ActivityThread.main(ActivityThread.java:8043)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:620)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1011)
2021-09-14 21:46:10.356 491-491/com.tumuyan.trime D/AndroidRuntime: Shutting down VM
新版本中,旧主题,几乎全不可用了。
新版本中,旧主题,几乎全不可用了。
我使用默认和同文风倒是至少能用…
@walk143 在同文 QQ
群發佈了基於新近版本編譯的安裝包,體驗過程中暫時發現如下問題:
2021-10-05
鑑於 QQ
群中多次討論此話題,敝人補充第 1
~ 2
章節細節風格
下游節點中部分配置項失效需至鍵盤佈局中單獨定義:
style:
horizontal_gap: 4 # 按鍵列距
vertical_gap: 4 # 按鍵行距
round_corner: 12 # 按鍵圓角半徑
key_text_size: 20 # 按鍵文本字號
key_long_text_size: 18 # 長文本字號
symbol_text_size: 10 # 符號字號
preset_keyboards:
default:
horizontal_gap: 4
vertical_gap: 4
keys:
- {click: space, ascii: spacex, long_click: Mode_switch, round_corner: 12, key_text_size: 20, key_long_text_size: 18, symbol_text_size: 10, width: 30}
備用顏色配置
下游節點編碼背景
與 候選欄背景
共用 back_color
參數項,candidate_background
獨立控制 候選欄背景
,提昇了主題配色設計自由度,candidate_background
節點缺失可能導致 候選欄
背景顯示異常:# 備用顏色機制
fallback_colors:
root_background: back_color # 鍵盤與候選欄基底背景
candidate_background: back_color # 候選欄背景
liquid_keyboard_background: keyboard_back_color # 液態鍵盤背景
long_text_back_color: key_back_color # 剪貼板按鍵背景
hand_writing_color: key_symbol_color # 手寫筆跡
preset_color_schemes/<scheme_id>
中二次重寫:# 顏色配置
colors:
# 01_starry 星光
11: &color11 0xff00aacc # 藍
12: &color12 0xff009999 # 青
13: &color13 0xffdd0077 # 玫
14: &color14 0xffc03000 # 橙
15: &color15 0xff000000 # 黑
16: &color16 0xff0a1018 # 夜藍
17: &color17 0xff1c1c1c # 夜黑
18: &color18 0xdd001530 # 透藍
# 配色方案
preset_color_schemes:
01_starry:
name: 星光 # 方案名稱
author: 聽雨客 # 作者信息
border_color: *color12 # 邊框
text_back_color: *color16 # 浮動窗背景
back_color: *color16 # 編碼背景
text_color: *color11 # 編碼文本
hilited_back_color: *color16 # 高亮編碼背景
hilited_text_color: *color13 # 高亮編碼文本
candidate_background: *color16 # 候選欄背景
label_color: *color12 # 序號標籤
candidate_text_color: *color13 # 候選文本
comment_text_color: *color12 # 編碼提示
hilited_candidate_back_color: *color15 # 高亮候選背景
hilited_label_color: *color14 # 高亮序號標籤
hilited_candidate_text_color: *color11 # 高亮候選文本
hilited_comment_text_color: *color14 # 高亮編碼提示
candidate_separator_color: *color16 # 候選分隔
root_background: *color16 # 鍵盤與候選欄基底背景
keyboard_back_color: *color17 # 鍵盤背景
key_back_color: *color15 # 按鍵背景
key_text_color: *color11 # 按鍵文本
key_symbol_color: *color12 # 按鍵符號
hilited_key_back_color: *color14 # 高亮按鍵背景
hilited_key_text_color: *color15 # 高亮按鍵文本
hilited_key_symbol_color: *color17 # 高亮按鍵符號
off_key_back_color: *color16 # 功能鍵關閉狀態背景
off_key_text_color: *color13 # 功能鍵關閉狀態文本
on_key_back_color: *color14 # 功能鍵開啟狀態背景
on_key_text_color: *color15 # 功能鍵開啟狀態文本
hilited_off_key_back_color: *color12 # 高亮功能鍵關閉狀態背景
hilited_off_key_text_color: *color15 # 高亮功能鍵關閉狀態文本
hilited_on_key_back_color: *color12 # 高亮功能鍵開啟狀態背景
hilited_on_key_text_color: *color15 # 高亮功能鍵開啟狀態文本
preview_back_color: *color18 # 按鍵預覽背景
preview_text_color: *color13 # 按鍵預覽文本
# shadow_color: *color11 # 按鍵陰影
liquid_keyboard_background: *color17 # 液態鍵盤背景
long_text_back_color: *color15 # 剪貼板按鍵背景
hand_writing_color: *color11 # 手寫筆跡
偏移值
配置項失效僅能在局部按鍵中單獨定義:
preset_keyboards:
default:
key_text_offset_x: 5 # 按鍵文本橫向偏移量(左負右正)
key_text_offset_y: 5 # 按鍵文本縱向偏移量(上負下正)
key_symbol_offset_x: 5 # 按鍵符號橫向偏移量(左負右正)
key_symbol_offset_y: 5 # 按鍵符號縱向偏移量(上負下正)
key_hint_offset_x: 5 # 按鍵助記橫向偏移量(左負右正)
key_hint_offset_y: 5 # 按鍵助記縱向偏移量(上負下正)
key_press_offset_x: 5 # 高亮按鍵文本橫向偏移量(左負右正)
key_press_offset_y: 5 # 高亮按鍵文本縱向偏移量(上負下正)
preset_keyboards:
default:
keys:
- {click: q, long_click: '~', key_text_offset_x: 5, key_text_offset_y: 5, key_symbol_offset_x: 5, key_symbol_offset_y: 5, key_hint_offset_x: 5, key_hint_offset_y: 5, key_press_offset_x: 5, key_press_offset_y: 5}
# 界面風格、功能開關
style:
# 豎屏模式,左手鍵盤佈局,鍵盤與屏幕左邊緣的內填充
# 若配置右手佈局,則本節點視為填充更少的一側
keyboard_padding_left: 5
# 豎屏模式,左手鍵盤佈局,鍵盤與屏幕右邊緣的內填充
# 若配置右手佈局,則本節點視為填充更多的一側
keyboard_padding_right: 40
整體而言無論左右手佈局,
keyboard_padding_left
的值都得是小,keyboard_padding_rhght
的值都得是大。所以配置右手佈局,這麼看節點名就不直觀了,按功能角度聲明節點,
可能 keyboard_padding_less
和 keyboard_padding_more
更貼切一些。
整體而言無論左右手佈局,
keyboard_padding_left
的值都得是小,keyboard_padding_rhght
的值都得是大。- 所以配置右手佈局,這麼看節點名就不直觀了,按功能角度聲明節點,
- 可能
keyboard_padding_less
和keyboard_padding_more
更貼切一些
单手键盘虽然设计了左右手互换,其实一般人也只用一侧,根据需求参数中左侧改大右边改大就可以了。叫left和right也算直观,和其他几个参数命名方式也相似,就不改了。
整體而言無論左右手佈局,
keyboard_padding_left
的值都得是小,keyboard_padding_rhght
的值都得是大。- 所以配置右手佈局,這麼看節點名就不直觀了,按功能角度聲明節點,
- 可能
keyboard_padding_less
和keyboard_padding_more
更貼切一些单手键盘虽然设计了左右手互换,其实一般人也只用一侧,根据需求参数中左侧改大右边改大就可以了。叫left和right也算直观,和其他几个参数命名方式也相似,就不改了。
原来left和right是为了左右边距分开设置,这属于避免曲面屏而设计的,左右手就不应该复用。less和more新增一个配置项才对
整體而言無論左右手佈局,
keyboard_padding_left
的值都得是小,keyboard_padding_rhght
的值都得是大。- 所以配置右手佈局,這麼看節點名就不直觀了,按功能角度聲明節點,
- 可能
keyboard_padding_less
和keyboard_padding_more
更貼切一些单手键盘虽然设计了左右手互换,其实一般人也只用一侧,根据需求参数中左侧改大右边改大就可以了。叫left和right也算直观,和其他几个参数命名方式也相似,就不改了。
原来left和right是为了左右边距分开设置,这属于避免曲面屏而设计的,左右手就不应该复用。less和more新增一个配置项才对
没有复用,参见wiki
keyboard_padding: 20 #竖屏模式下,屏幕左右两侧与键盘的距离(曲面屏减少误触)
keyboard_padding_left: 5 #竖屏模式下,屏幕左侧与键盘的距离 如定义覆盖 keyboard_padding
keyboard_padding_right: 0 #竖屏模式下,屏幕右侧与键盘的距离 如定义覆盖 keyboard_paddin
首先默认边距是20.设置了left为5,那左边距就变为5.right为0或者未设置,那右边距就是20. 至于左右手的间距,单独定义一个key来设置。 这里的left和right只是为了曲面屏误解设置的边距,不是左右手键盘的间距
对我来说,最大的问题是全局的几个参数无效了,造成我的主键盘高度和符号键盘高度不等。 key_height: FJG #符号键盘键高 vertical_gap: FJH #符号键盘行距 horizontal_gap: *FJL #符号键盘列间距 这是最可怕的,我是用来定义符号键盘的,这样给主键盘定义特别值,再定义全局参数,就完成了。 但全局参数无效,就得给每个键盘定义参数,如果只是一个主题文件倒简单,但我有衍生主题,本来全局键盘定义完成,我就不用再给每个符号键盘打补丁了,现在全局无效,就得给所有符号键盘都加定义。
对我来说,最大的问题是全局的几个参数无效了,造成我的主键盘高度和符号键盘高度不等。 key_height: FJG #符号键盘键高 vertical_gap: FJH #符号键盘行距 horizontal_gap: *FJL #符号键盘列间距 这是最可怕的,我是用来定义符号键盘的,这样给主键盘定义特别值,再定义全局参数,就完成了。 但全局参数无效,就得给每个键盘定义参数,如果只是一个主题文件倒简单,但我有衍生主题,本来全局键盘定义完成,我就不用再给每个符号键盘打补丁了,现在全局无效,就得给所有符号键盘都加定义。
以前配好的主题,现在都无法用了,字体尺寸错乱,候选条的透明度也没有了。
冒泡看看,旧主题还是存在着走样的问题,不知什么时候可以修复一下。
另外,候选栏的底色现在变成强制纯白色,有些怪。
新版本部分问题已经修复,除了键盘字体有些大
新版本部分问题已经修复,除了键盘字体有些大
候选栏的底色还是强制纯白,有点违和
新版本部分问题已经修复,除了键盘字体有些大
反馈如下:
@yanhuacuo 剩下问题能另外开一个 issue 吗?
这个问题算是修复了
Describe the bug 在近期的pr中可能存在一些bug,导致不同皮肤的键盘存在不同的异常。
Expected behavior
Screenshots 左侧为先前版本,右侧为最新版本。 由上之下,分别是我自己的主题,同文风,默认。