小编Mar*_*aie的帖子

Android Q 中的深色主题配置更改

我想在我的应用程序中实现 android 10 深色主题,我有以下情况:

SYSTEM_DEFAULT, NIGHT_MODE, LIGHT_MODE

问题是当我从应用程序内部将主题从夜晚或灯光更改为 system_default 时,它无法理解系统是处于亮模式还是暗模式。所以主题不会更新。

我已经尝试过谷歌的黑暗主题 https://developer.android.com/guide/topics/ui/look-and-feel/darktheme

并且实施配置仍然对我不利,因为如果用户在系统默认为天时将天更改为系统默认值,我不想重新创建我的活动。

反正我能处理这个吗?

when(id) {
  NIGHT - > theme = Theme.NIGHT_MODE
  DAY - > theme = Theme.LIGHT_MODE
  SYSTEM_DEFAULT - > theme = Theme.SYSTEM_DEFAULT
}

context ? .clearCachedDrawables()
activity ? .recreate()
}
Run Code Online (Sandbox Code Playgroud)

编辑:

when (themeStatus) {
            Theme.LIGHT_MODE ->
                AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
            Theme.NIGHT_MODE ->
                AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
            Theme.SYSTEM_DEFAULT ->
               AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM)
        }
Run Code Online (Sandbox Code Playgroud)

android kotlin-android-extensions android-10.0 android-dark-theme

6
推荐指数
1
解决办法
4550
查看次数

使用通知导航到带有 navArgs 的片段

我是在我的应用程序中处理通知的新手,所以请耐心等待。我有一个待定的意图,当用户点击它时,它将导航到 MainActivity。我想更改它,以便它导航到具有导航参数的片段。

我的待定意图代码

        val notifyIntent = Intent(context, MainActivity::class.java).apply {
            flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
            data = Uri.parse(uri)
        }
        return PendingIntent.getActivity(
            context, 0, notifyIntent, PendingIntent.FLAG_UPDATE_CURRENT
        )
Run Code Online (Sandbox Code Playgroud)

我的片段的导航操作

       NavigationGraphMainDirections.actionGlobalManagePostFragment("data")
Run Code Online (Sandbox Code Playgroud)

我不知道我是否必须将数据字符串与通知一起发送并通过待处理的意图将其取回。这里的解决方案是什么?

notifications android push-notification kotlin kotlin-android-extensions

6
推荐指数
1
解决办法
1948
查看次数

RecyclerView 分页时跳转到列表中间

我有这个页面,我已经使用 MVVM 和分页进行了设置RecyclerView,并使用Pull 刷新。单击此中的某些项目RecyclerView将导航到另一个片段。

我的问题是每当我第一次加载页面并完全向下滚动时。拉动刷新也可以。

但是当我导航到另一个片段并返回时,一直滚动到顶部,滑动以刷新:RecyclerView将跳转到页面中间(就在我单击以导航到另一个片段的项目上)

我的片段

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        val adapter = GroupAdapter<ViewHolder>().apply { add(mainSection) }
        val gridLayoutManager = GridLayoutManager(activity, adapter.spanCount)
        gridLayoutManager.spanSizeLookup = adapter.spanSizeLookup
        with(recyclerView) {
            layoutManager = gridLayoutManager
            setHasFixedSize(true)
            addOnScrollListener(PaginationScrollListener {
                viewModel.onEndOfList()
            })
        }
        recyclerView.adapter = adapter


        pullToRefresh.apply {
            setProgressBackgroundColorSchemeColor(
                ContextCompat.getColor(context, R.color.window_level_2)
            )
            setColorSchemeColors(ContextCompat.getColor(context, R.color.brand_primary))
            setOnRefreshListener { viewModel.onRefresh() }
        }
    }
Run Code Online (Sandbox Code Playgroud)

我的视图模型

    fun onRefresh() {
        page = 0
        widgetItems.clear()
        _widgetListObservable.postValue(widgetItems)
        finishedLoading = false
        isFirstFetch = true …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-recyclerview android-paging

5
推荐指数
1
解决办法
1186
查看次数

如何制作一个适合父母尺寸的圆形盒子组成android

我想制作一个圆形文本,它将填充屏幕上的所有可用内容,但仍然保持圆形。这是我为该组件编写的代码。

    Box(modifier = modifier
        .padding(4.dp)
        .fillMaxSize()
        .clip(CircleShape),
        contentAlignment = Alignment.Center
    ) {
        Text(text = "hello", modifier = Modifier.fillMaxSize().background(Color.Yellow))
}
Run Code Online (Sandbox Code Playgroud)

而这并不是我想要的结果。关于如何实现这一目标有什么想法吗?

在此输入图像描述

android android-jetpack-compose

4
推荐指数
1
解决办法
5752
查看次数