【发布时间】:2015-12-30 04:43:15
【问题描述】:
我的问题如下: 我有一些默认为浅色主题的布局,这意味着它们具有白色背景。我的涟漪效果看起来不错,我的小部件看起来也不错。
当我使用深色主题或黑色主题时会出现问题。我的小部件变得不那么明显了,我的波纹也变得不那么明显了,对于较暗的主题应该是白色的。使用深色主题的波纹看起来像这样。
在深色主题中,涟漪仅部分可见,因为背景颜色为 #303030,比 #000000 的涟漪浅。理想情况下,波纹应该是白色的。在黑色主题布局中,波纹是不可见的,因为背景和波纹都是黑色的。 我实际上已经通过使用解决了这个问题
android:theme="ThemeOverlay.AppCompat.Dark"
在我的布局中。如果我使用它,波纹是白色的,小部件也更明显。问题是当我单击第一个开关之类的小部件时,应用程序崩溃并给我留下一个无意义的错误。
编辑: 错误如下:
12-29 23:57:39.801 13055-13055/com.company.app E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.company.app, PID: 13055
java.lang.IllegalArgumentException: Expected receiver of type com.company.app.SettingsActivity, but got android.view.ContextThemeWrapper
at java.lang.reflect.Method.invoke(Native Method)
at android.view.View$DeclaredOnClickListener.onClick(View.java:4453)
at android.view.View.performClick(View.java:5204)
at android.widget.CompoundButton.performClick(CompoundButton.java:122)
at android.view.View$PerformClick.run(View.java:21153)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
如何以这样一种方式为我的小部件和我的波纹设置主题,以便在较暗的主题布局上正确显示它们(如上所述)而不会出错?
谢谢!
【问题讨论】:
-
@user3069305 谢谢,我已经添加了日志。
标签: android android-layout material-design android-theme ripple