【问题标题】:Transparent background for IME UI in androidandroid中IME UI的透明背景
【发布时间】:2015-10-27 17:53:10
【问题描述】:

我正在尝试实现(又一个!)输入法。我从软键盘示例开始,它实现了 KeyboardView 对象的使用和扩展,它扩展了 View。我想以完全不同的方式扩展 View,所以我将以下内容放在我的 input.xml 中。请注意,我的目标是为 UI 提供一个透明的表面。

<?xml version="1.0" encoding="utf-8"?>
<com.diffstrokes.ime.StrokeView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@null"
    android:cacheColorHint="@null" >
</com.diffstrokes.ime.StrokeView>

调用 IME 的 Activity 被浅灰色背景遮挡。例如,如果我将背景颜色更改为半透明的红色,我会在视图背景上方看到几行灰色像素。这个背景来自哪里,我该如何摆脱它?


我尝试使用 LinearLayout 而不是视图。 LinearLayout 包含两个 View 标签。在我的 onCreateInputView() 函数中,我使用以下内容为 LinearLayout 充气:

LinearLayout llo = 
(LinearLayout) getLayoutInflater().inflate(
                        R.layout.dslayout, null);

onCreateInputView() 完成时没有问题,但在某些时候出现异常,如以下日志所示:

 06-12 15:17:01.350: E/AndroidRuntime(14002): FATAL EXCEPTION: main
 06-12 15:17:01.350: E/AndroidRuntime(14002):
 java.lang.IllegalStateException: The specified child already has a
 parent. You must call removeView() on the child's parent first. 06-12
 15:17:01.350: E/AndroidRuntime(14002):     at
 android.view.ViewGroup.addViewInner(ViewGroup.java:2117) 06-12
 15:17:01.350: E/AndroidRuntime(14002):     at
 android.view.ViewGroup.addView(ViewGroup.java:2012) 06-12
 15:17:01.350: E/AndroidRuntime(14002):     at
 android.view.ViewGroup.addView(ViewGroup.java:1992) 06-12
 15:17:01.350: E/AndroidRuntime(14002):     at
 android.inputmethodservice.InputMethodService.setInputView(InputMethodService.java:1105)
 06-12 15:17:01.350: E/AndroidRuntime(14002):   at
 android.inputmethodservice.InputMethodService.updateInputViewShown(InputMethodService.java:963)
 06-12 15:17:01.350: E/AndroidRuntime(14002):   at
 android.inputmethodservice.InputMethodService.showWindowInner(InputMethodService.java:1318)
 06-12 15:17:01.350: E/AndroidRuntime(14002):   at
 android.inputmethodservice.InputMethodService.showWindow(InputMethodService.java:1293)
 06-12 15:17:01.350: E/AndroidRuntime(14002):   at
 android.inputmethodservice.InputMethodService$InputMethodImpl.showSoftInput(InputMethodService.java:392)
 06-12 15:17:01.350: E/AndroidRuntime(14002):   at
 android.inputmethodservice.IInputMethodWrapper.executeMessage(IInputMethodWrapper.java:176)
 06-12 15:17:01.350: E/AndroidRuntime(14002):   at
 com.android.internal.os.HandlerCaller$MyHandler.handleMessage(HandlerCaller.java:61)
 06-12 15:17:01.350: E/AndroidRuntime(14002):   at
 android.os.Handler.dispatchMessage(Handler.java:99) 06-12
 15:17:01.350: E/AndroidRuntime(14002):     at
 android.os.Looper.loop(Looper.java:130) 06-12 15:17:01.350:
 E/AndroidRuntime(14002):   at
 android.app.ActivityThread.main(ActivityThread.java:3806) 06-12
 15:17:01.350: E/AndroidRuntime(14002):     at
 java.lang.reflect.Method.invokeNative(Native Method) 06-12
 15:17:01.350: E/AndroidRuntime(14002):     at
 java.lang.reflect.Method.invoke(Method.java:507) 06-12 15:17:01.350:
 E/AndroidRuntime(14002):   at
 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
 06-12 15:17:01.350: E/AndroidRuntime(14002):   at
 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 06-12
 15:17:01.350: E/AndroidRuntime(14002):     at
 dalvik.system.NativeStart.main(Native Method)

当我膨胀视图时,这不会发生。谁能解释一下为什么?

【问题讨论】:

  • schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@null" android:cacheColorHint ="@null" >
  • 如何使 XML 代码以正常格式显示?
  • 回答我自己的(次要)问题:LayoutInflater“将布局 XML 文件实例化到其对应的视图对象 see LayoutInflater documentation。这让我想到了我最初的问题:在我的下方隐藏工作区的对象是什么透明视图。
  • 你有没有想过这个问题?我遇到了同样的问题。

标签: android service android-softkeyboard


【解决方案1】:

我意识到这是一个老问题,但我想我会发布一个答案,以防有人在尝试创建透明 IME 时遇到这个问题。请参阅我对相关 StackOverflow 问题的回答,了解浅灰色(或白色)背景是什么,以及如何正确创建透明 IME:https://stackoverflow.com/a/20319466/1160216

【讨论】:

    猜你喜欢
    • 2015-05-26
    • 2018-12-20
    • 2016-12-02
    • 2011-08-08
    • 2015-06-18
    • 2020-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多