【问题标题】:How to use AppCompatCheckBox inside InputMethodService?如何在 InputMethodService 中使用 AppCompatCheckBox?
【发布时间】:2020-08-13 07:27:13
【问题描述】:

我正在使用 InputMethodService 创建一个自定义键盘,我的键盘中有复选框,我需要更改颜色。我发现您可以将它用于 min API 21+

<Checkbox
  android:buttonTint="@color/red" />

和 AppCompat

<Checkbox
  app:buttonTint="@color/red" />

但是当我运行我的键盘时,颜色根本没有改变

是不是因为我没有在 AppCompatActivity 上运行?

编辑:我的复选框的屏幕截图

【问题讨论】:

  • 您能否提供更多详细信息,例如带有选中和未选中复选框的软键盘屏幕截图
  • 嗨@alokHarman 我已经添加了截图,它仍然使用默认颜色
  • "是因为我没有在 AppCompatActivity 上运行吗?" – 基本上,是的。您需要做两件事来替换 Service 中的该功能。第一的。在 XML 标记中使用完全限定的类名——例如,&lt;androidx.appcompat.widget.AppCompatCheckBox&gt;。其次,您需要将Service Context 包装在具有适当主题的ContextThemeWrapper 中,并从中获取LayoutInflater,如this answer 所示。
  • 你是对的@MikeM。非常感谢,如何将您的评论标记为我问题的答案?
  • 对不起,我错过了你之前的评论。感谢您发布答案。请确保在系统允许的几天内接受它,以便您的问题显示为已解决。真高兴你做到了。干杯!

标签: android checkbox keyboard android-appcompat


【解决方案1】:

就像 @Mike M. 在 cmets 中所说,我需要使用 ContextThemeWrapper。我就是这样做的

ContextThemeWrapper ctx = new ContextThemeWrapper(getContext(), R.style.AppTheme);
inflate(ctx, R.layout.my_layout, view);

【讨论】:

    猜你喜欢
    • 2017-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-27
    • 2014-09-27
    • 2019-03-03
    • 2016-06-11
    • 2016-06-17
    相关资源
    最近更新 更多