即使在适配器中将DayNight主题设置为Day(light)模式,它仍然遵循System

时间:2019-12-06 16:09:45

标签: android android-appcompat android-theme

我在我的应用中使用DayNight主题。我在两个地方使用相同的适配器类,一个在片段中,一个在活动中。我在适配器中使用的布局具有将遵循DayNight主题的视图。我从未在代码中将模式设置为FOLLOW_SYSTEM。但是,即使设置为MODE_NIGHT_NO或MODE_NIGHT_YES,活动适配器中的视图也始终遵循系统主题。我在片段中使用的适配器可以很好地工作,并且遵循应用程序主题而不是系统主题。 这是我布局中的视图:


library(magrittr)

dummy_fun <- function(x){
  sprintf("%0.02f", x*1000+pi)
}
funs <- setNames(rep(list(fun), 4), names(iris)[-5])
flextable(head(iris)) %>% 
  set_formatter(values = funs)

image_selected_bg:

<View
    android:id="@+id/overlay"
    android:layout_width="@dimen/col3_image_width"
    android:layout_height="@dimen/col3_image_height"
    android:background="@drawable/image_selected_bg"
    android:visibility="gone"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />    

这就是我在适配器中使用视图的方式

<shape android:shape="rectangle"
xmlns:android="http://schemas.android.com/apk/res/android"
>

<solid android:color="@color/selectedImage"/>
<corners android:radius="@dimen/rounded_corner_image_radius" />
</shape>

1 个答案:

答案 0 :(得分:0)

请注意,@color/selectedImage主题中的DayNight将引用默认的浅色xml资源。因此,您需要在名为@color/selectedImage / values-night的文件夹中为colors.xml创建一个新的xml文件。我认为目前您只有values / colors.xml